首页 > 编程语言 >C# FileUpload 实现上传限定类型和大小的文件到服务器

C# FileUpload 实现上传限定类型和大小的文件到服务器

时间:2023-06-05 16:23:18浏览次数:39  
标签:Web FileUpload FileUpload1 文件 C# System using 上传

上传文件有两个主要的目的地,一个是服务器,另一个是数据库,ASP.NET内置了FileUpload这个上传控件,文本框显示用户选择的文件的全名.

其属性主要包括:

ContenLength:上传文件大小,单位:字节

FileName:文件名称

HasFile:是否选择了文件

例子:
测试环境.net 2.0(内有详细说明)

default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
<title>无标题页</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:FileUpload ID="FileUpload1" runat="server" /><br /> 
<br /> 
<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="上传" /> </div> 
</form> 
</body> 
</html>

default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        Boolean fileOk = false;
        string path = Server.MapPath("~/upload/");

        //判断是否已经选取文件
        if (FileUpload1.HasFile)
        {
            //取得文件的扩展名,并转换成小写
            string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
            //限定只能上传jpg和gif图片
            string[] allowExtension = { ".jpg", ".gif", ".txt", ".xls" };
            //对上传的文件的类型进行一个个匹对
            for (int i = 0; i < allowExtension.Length; i++)
            {
                if (fileExtension == allowExtension[i])
                {
                    fileOk = true;
                    break;
                }
            }
            //
            if (fileOk)
            {
                resultlbl.Text = "要上传的文件类型不对!";
            }

            //对上传文件的大小进行检测,限定文件最大不超过1M
            if (FileUpload1.PostedFile.ContentLength > 1024000)
            {
                fileOk = false;
            }
            //最后的结果
            if (fileOk)
            {
                try
                {
                    FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
                    resultlbl.Text ="上传成功";
                }
                catch
                {

                    resultlbl.Text = "上传失败";
                }
            }
            else
            {
                 resultlbl.Text = "文件类型或者文件大小超出1M或者文件类型不对";

           }

        }
    }
}

标签:Web,FileUpload,FileUpload1,文件,C#,System,using,上传
From: https://www.cnblogs.com/nuomibaibai/p/17458099.html

相关文章

  • go map gc的测试代码
    **本文章由githubcopilot协助生成**遇到一个离职同事写的代码,如下:```gopackagemapGCfuncmapGc(){lock:=sync.Mutex{}gofunc(){for{time.Sleep(12*time.Hour)tmp:=make(map[string]interface{})lo......
  • Linux和Mac环境变量设置
    在linux和mac中设置环境变量我已知的有两种方式,一种是修改环境变量的文件,另一种是使用export关键字。之所以不提windows,是因为我所知的在windows上配置环境变量只有通过窗口然后点击这一种方式。以mac配置pyenv环境变量为例:1、export方式查看当前shell是zsh还是bash,如果是bas......
  • 【解决方法】loopback口添加同目的网段的地址后,无法用默认路由ping通该网段地址
    环境:工具:锐捷EVE,VMwareWorkstationPro远程工具:SecureCRT系统版本:Windows10问题描述:描述:原本可用默认路由ping该地址,但是在lookback口添加同该地址网段地址后,就无法ping通。提示:若按照教程还是无法完成操作,可以进入右侧的企鹅,找我看看。解决方法-视频与文字教程......
  • CF做题笔记
    CFR876D-BallSorting首先不考虑小球的数量,假设有充足的小球,要求最少的移动次数,我们只需要拿出序列的最长上升子序列,这就是始终不会移动的小球的数量。加上小球数量的限制。设始终不会移动的小球的集合为\(S\),显然集合需要满足单调上升,它们将整个序列分为\(f(S)\)段,那么......
  • 利用PImpl在C++14中优雅调用C++17方法
    诉求你的工程由C++14写成,某天你看中了一个功能强大的三方库,一切都好除了该库仅支持C++17编译,对于比较复杂的三方库使用C++14进行重构工作量太大,有没有优雅的办法?实现历史总是惊人的相似,为了解决这一问题前人发明了PImpl编程方法用于隐藏class的实现细节,头文件中仅声明抽象class......
  • python操作Excel,读取表格内容,并根据需求将内容填充到表格指定位置
    在日常工作中经常会遇到需要将“表一,部门信息表”内容逐行填充到“表二,个人基本信息表”的情况。表一:表二:  实现方式如下:#!usr/bin/python#-*-coding:utf-8-*-importpandasaspdimportopenpyxlasopfromopenpyxlimportWorkbookfromopenpyxlimportl......
  • 必读:学习C语言编程的路线图
    学习C语言编程,可以丰富编程思维的训练和经验,以下是一些学习C语言编程的路线图:设置开发环境:在计算机上安装C编译器。GNU编译器集合(GCC)是一个流行的选择,适用于Windows、macOS和Linux等各种操作系统。安装IDE编程环境,推荐VSCode,有丰富的插件可以辅助编程,并且辅助学习编程。使用......
  • selenium click skip_button("introjs-skipbutton")
    classINTERFACING():def__init__(self):self.driver_initialized=Falseself.driver=''self.MAX_TRIALS=2#self.chrome_version=get_google_chrome_version()defmake_soup(self):returnBeaut......
  • Leangoo领歌Scrum工具实施多团队规模化敏捷Scrum of Scrums
    ​多团队大规模敏捷的场景定义:多个敏捷团队开发同一个大型产品,几十人,甚至几百人开发一个产品或解决方案。在Leangoo领歌中创建多团队大规模敏捷项目:多团队规模化敏捷的项目结构: 在Leangoo企业中创建项目,项目类型选择“敏捷开发”,项目模板选择“多团队大规模敏捷开发”。创......
  • helm从Harbor存储的chart发布服务
    李大白-作者......