zoukankan      html  css  js  c++  java
  • 多选文件批量上传前端(ajax*formdata)+后台(Request.Files[i])---input+ajax原生上传

    1.配置Web.config;设定上传文件大小

    <system.web>
        <!--上传1000M限制(https://www.cnblogs.com/Joans/p/4315411.html)-->
        <httpRuntime targetFramework="4.5.2" maxRequestLength="1024000000"/>
    </system.web>
    +
    +
    +(参考博客:(https://www.cnblogs.com/Joans/p/4315411.html))
    +
    +
    <system.webServer>
        <security>
         <requestFiltering>
           <!--上传1000M限制(https://www.cnblogs.com/Joans/p/4315411.html)-->
           <requestLimits maxAllowedContentLength="1024000000" /> 
          </requestFiltering>
        </security>
      </system.webServer>
    
    

    2.前端(ajax*formdata)

    <div>
        <form method="post"enctype="multipart/form-data" data-ajax="false">
            @*multiple="multiple"多选必备*@
            <input type="file" name="Files" id="Files" multiple="multiple" value="上传Files" />
            <br /><br />
            @*type="button"以后用button*@
            <input type="button" value="提交Files" onclick="uplod_Files()" />
        </form>
    </div>
        <script>
            function uplod_Files() {
                var formData = new FormData();//就像cookie一样用,存入files[i];;数组形式
                var files = document.getElementById("Files").files;
                for (var i = 0; i < files.length ; i++)
                {
                    formData.append("files_"+i, files[i]);
                }
                $.ajax({
                    url: "/ToPdf/Get_Files",//请求地址
                    dataType: "json",//数据格式
                    type: "POST",//请求方式
                    async: true,//是否异步请求
                    cache: false,//上传文件无需缓存
                    contentType: false,//必须
                    processData: false,//用于对data参数进行序列化处理 这里必须false
                    data: formData,
                    success: function (data) {
                    }
                })
            }
        </script>
    
    

    3.后台(Request.Files[i]

    public void Get_Files()
            {
                try
                {
                    var files = Request.Files;//得到前台ajax传过来的formData;;是个数组,基本单位是文件,可以不同类型
                    for (int i = 0; i < files.Count; i++)
                    {
                        var file = files[i];//数组;用indexof取
                        string file_path = Server.MapPath("Picture_File_Centre");//Picture_File_Centre人为设置存放路径
                        if (!Directory.Exists(file_path))
                        {
                            Directory.CreateDirectory(file_path);
                        }
                        var file_Path_Url = Path.Combine(file_path, Path.GetFileName(file.FileName));
                        file.SaveAs(file_Path_Url);//上传后保存文件
                             //优点;实现多类型多文件上传;;;只要是东西就可以上传,,后续有要求的可以自己在后台或前台做判断
                             //缺点:file_path内覆盖性写入,即上传文件与已有文件同名同类型时会覆写
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
    
    
  • 相关阅读:
    茶香账簿小程序开发进度(3)
    软件需求十步走阅读笔记(一)
    茶香账簿小程序开发进度(2)
    茶香账簿小程序开发进度(1)
    软件工程概论总结及对老师的意见
    人月神话阅读笔记03
    第二阶段第七次站立会议
    第二阶段第六次站立会议
    第二阶段第五次站立会议
    第二阶段第四次站立会议
  • 原文地址:https://www.cnblogs.com/jsll/p/11732907.html
Copyright © 2011-2022 走看看