2017-5-27 WebForm 文件上传

文件上传

准备工作
  1.文件上传的页面
  2.上传文件要保存的文件夹

1.只要将文件传上来就行
  //1、获取要上传的文件,并且知道要上传到服务器的路径
  string s = "Uploads/aaa.txt";
  //2、生成绝对路径
  string path = Server.MapPath(s);
  //3、上传
  FileUpload1.SaveAs(path);

问题:文件类型保存不住,名字无法修改,覆盖已上传的文件
  优化1:保留文件原有的名字
  解决:把路径中的文件名替换为控件选中的文件名
  string s = "Uploads/" + FileUpload1.FileName;

问题:文件名一样,会覆盖,造成文件丢失
  解决:文件名拼接时间和用户名
  string s = "Uploads/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + Request.Cookies["user"].Value + FileUpload1.FileName;

问题:文件过大,但是还要上传
  解决:不是特别大可以更改请求最大长度,
  如果特别大:C#大文件断点续传
  扩容:在web.config中的<system.web>标记中
  <httpRuntime maxRequestLength="40960"/>

解决:限制上传文件的大小
  服务端限制:
  if (FileUpload1.PostedFile.ContentLength > 1024 * 1024 * 4)
  {
    Label1.Text = "文件过大!";
    return;
  }

客户端限制:
  fl.files[0].size > 1024 * 1024 * 4

问题:限制上传文件的类型
<asp:FileUpload ID="FileUpload1" accept=".jpg,.jpeg,.png" runat="server" />

完整的文件上传代码:

html页面代码和js页面段限制:

View Code

后台端代码:

View Code
原文地址:https://www.cnblogs.com/changxiaosen/p/6943228.html