FileUpload控件使用初步

摘要:
但是,应该注意,由于用户向服务器传递大量文件,设置过大会导致拒绝服务攻击。

FileUpload控件使用初步:

1.实现文件上传

protected void btnSubmit_click(object sender, EventArgs e)

{

if (FileUpload1.HasFile == true)

{

string strErr = "";

//获得上传文件的大小

int filesize = FileUpload1.PostedFile.ContentLength;

if (filesize > 1024 * 1024)

{

        strErr += "文件大小不能大于 1MB\n";

}

if (strErr == "")

{

//获得服务器文件当前路径

string path = Server.MapPath("~");

//把上传文件保存在当前路径的 upload 文件夹中

FileUpload1.PostedFile.SaveAs(path  +  "\\upload\\"  +  FileUpload1.FileName);

lblInfo.Text = "文件保存成功";

}

}

else

{

  lblInfo.Text = "请指定上传的文件";

}

}

2. 限定上传的文件的类型

            //取得文件的扩展名,并转换成小写
            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;
                }
            }

      可以进一步利用FileUpload.PostedFile.ContentType属性进行文件类型判断:
     string fileContentType = FileUpload1.PostedFile.ContentType;
     if (fileContentType =="image/bmp"|| fileContentType =="image/gif"|| fileContentType =="image/pjpeg")
     {

            //-----
      }

3.将上传文件的名称以时间命名

string fileName = Server.MapPath("~") + "\\upload\\" +   DateTime.Now.ToString("yyyyMMddHHmmss")+".jpg";

FileUpload1.SaveAs(fileName);

4.上传大文件

利用ASP.NET控件中的FileUpload控件时,有时候需要上传大容量的文件,可是默认情况下,上传文件的最大容量为4M。如果要实现更大的文件上传,可以在配置文件中改变两个默认设置:httpRuntime下的maxRequestLength和requestLengthDiskThreshold,前者规定了上传的最大容量值,后者设定缓存的大小,以KB为单位。
如:

<configuration>
    <system.web>
       ...
       <httpRuntime maxRequestLength=”10240" requestLengthDiskThreshold=”100" />
       ...
    </system.web>
</configuration>

上面的设置为可以上传不超过10MB的文件,并把缓存阈值改为100KB。

不过要注意,设置太大了会因用户将大量文件传递到该服务器而导致的拒绝服务攻击。

免责声明:文章转载自《FileUpload控件使用初步》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇辅助角公式的几何意义VictoriaMetrics:使用vmctl来实现vmstorage向victoriametricsprod(单机版)迁移数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP单点登陆

本文主要介绍了利用webservice,session,cookie技术,来进行通用的单点登录系统的分析与设计。具体实现语言为PHP。单点 登录,英文名为Single Sign On,简称为 SSO,是目前企业,网络业务的用户综合处理的重要组成部分。而SSO的定义,是在多个应用系统中,用户只需要登陆一次就可以访问所有相互信任的应用系 统。 动机: 用过uc...

Spring框架系列(六)--事务Transaction

  本文绝大部分内容为转载,原文地址:https://blog.csdn.net/trigl/article/details/50968079   除此之外,后面还有延伸内容   事务在企业日常开发中几乎是一定会遇到的,例如一个审核的流程可能涉及到查询、修改、插入等操作,所以保证事务性是很有必要的。一般就是开启事务支持,然后@Transactional,但...

C# HttpWebRequest请求服务器(Get/Post兼容)

简单示例说明 public static string HttpGet(string url, string data,string Method, int timeOut, Encoding encode, string contentType = "application/x-www-form-urlencoded", CookieContainer...

将json文件转换成insert语句的sql文件

引入是要的maven依赖: 1 <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> 2 <dependency> 3 <groupId>com.google.code.gson</groupId> 4 &l...

遍历树,找出所有叶子路径

一、示例: 树的结构: 示例中自己构建了图片中的这棵树: 树节点模型: public class TreeNode { String value; List<TreeNode> children; public TreeNode() { children = new ArrayList<>...

OPCDAAuto.dll的C#使用方法浅析

上次研究了.Net版本的OPC API dll,这次我采用OPCDAAuto.dll来介绍使用方法。以下为我的源代码,有详细的注释无需我多言。编译平台:VS2008SP1、WINXP、KEPServer除此之外,我也安装了西门子的Net2006和Step7,其中Net2006是负责OPC的,可能会在系统中创建一些dll之类的,并提供几个OPC服务器以下是我...