• Chapter 6. 文件上传


    步骤:

    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;
            }
    };
  • 相关阅读:
    细菌 状态压缩
    素数
    骑士问题(knight)
    魔法石的诱惑
    平面上的最接近点对
    救援行动(save)
    优先队列
    leetcode 92. 反转链表 II
    leetcode 91. 解码方法
    leetcode 39. 组合总和
  • 原文地址:https://www.cnblogs.com/xiao55/p/5943411.html
Copyright © 2020-2023  润新知