首页 > Web开发 > 详细

Chapter 6. 文件上传

时间:2016-10-09 20:00:18      阅读:214      评论:0      收藏:0      [点我收藏+]

步骤:

1、先将项目中的相对路径位置写出来     

  string path = "images/aaa.txt";

2、将此相对路径映射成绝对路径     

  string endpath = Server.MapPath(path);

3、保存    

   FileUpload1.SaveAs("endpath");

问题1:文件重名,容易被覆盖

办法:保留文件原有的名字
   string path = "images/"+FileUpload1.FileName;

问题2:文件重名,多人上传同一名称的文件会被覆盖

办法:名称添加时间拼接,用户名拼接

   string path="images/"+DateTime.Now.ToString("yyyyMMddHHmmss")+Request.Cookies["User"].Value+FileUpload1.FileName;

问题3:上传文件格式限制

办法1:

  控件属性:accept = ".jpg,.png,.jpeg"; 

办法2:

  使用JS,获取用户选择文件的后缀名,验证是否与要求的一致 

document.getElementById("Button1").onclick = function () 
{
var fl = document.getElementById("FileUpload1"); var aa = fl.value.substr(fl.value.length - 4, 4); if (aa != ".txt" && aa != ".png" && aa != ".jpg")
     { alert(
"文件格式选择不正确!"); return false; } };

 

问题4:文件过大

办法1、扩容

  Web.config配置文件:
    <httpRuntime maxRequestLength="40960"/>
    以KB为单位,默认4096,不要太大,因为会占用服务器内存

办法2、文件大小限制
  1、C#端限制
    if (FileUpload1.PostedFile.ContentLength > (4096 * 1024))  但是,不好用

  2、客户端JS限制
    fl.files[0].size 能获取到选中文件的大小,B为单位

document.getElementById("Button1").onclick = function () 
{
        var fl = document.getElementById("FileUpload1");

        if (fl.files[0].size > (1024 * 1024 * 4)) 
     {
            alert("文件超过4MB");
            return false;
        }
};

 

Chapter 6. 文件上传

原文:http://www.cnblogs.com/xiao55/p/5943411.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!