zoukankan      html  css  js  c++  java
  • 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;
            }
    };
  • 相关阅读:
    责任链简单解析
    mysql实践一:SQL基础
    Aix6.1下su命令不能切换环境变量的问题
    maven 打包错误 Cannot access central in offline mode
    登陆并访问k8s的apiserver
    kubernetes 实践五:Service详解
    kubernetes1.16 配置 metrics-server
    kubernetes 实践四:Pod详解
    kubernetes 实践三:使用kubeadm安装k8s1.16.0
    kubernetes 实践二:kubectl命令使用
  • 原文地址:https://www.cnblogs.com/xiao55/p/5943411.html
Copyright © 2011-2022 走看看