Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用其他参数增加MVC控制器操作的ASP.NET请求的maxRequestLength?_Asp.net_Asp.net Mvc_File Upload_Web Config_Filesize - Fatal编程技术网

是否可以使用其他参数增加MVC控制器操作的ASP.NET请求的maxRequestLength?

是否可以使用其他参数增加MVC控制器操作的ASP.NET请求的maxRequestLength?,asp.net,asp.net-mvc,file-upload,web-config,filesize,Asp.net,Asp.net Mvc,File Upload,Web Config,Filesize,是否可以使用其他参数增加MVC控制器操作的ASP.NET请求的maxRequestLength 我有一个UploadController,它的ActionResult看起来像这样 [HttpPost] public ActionResult VideoUpload(int memberId) { var status= _docRepo.SaveDocument(DocumentType.Video, Request.Files, memberId); ret

是否可以使用其他参数增加MVC控制器操作的ASP.NET请求的maxRequestLength

我有一个UploadController,它的ActionResult看起来像这样

  [HttpPost]
  public ActionResult VideoUpload(int memberId)
  {
    var status= _docRepo.SaveDocument(DocumentType.Video, Request.Files, memberId);
        return Json(new { success = true, status = status});
  }
文件可能非常大,我在web.config中增加了MaxRequestLength并可以上传文件,但我担心安全问题。所以我尝试了这个,但它不起作用:

 <location path="VideoUpload">
        <system.web>
            <httpRuntime maxRequestLength="1024000" executionTimeout="600" />
        </system.web>
        <system.webServer>
            <security>
                <requestFiltering>
                    <requestLimits maxAllowedContentLength="1024000"/>
                </requestFiltering>
            </security>
        </system.webServer>
    </location>

有什么想法吗?
(上传方法使用swfupload)

您是否考虑过异步调用action controller方法,甚至可以调用新线程来保存文档,这样网页就不会等待响应并冒超时的风险

使用jquery ajax调用调用控制器和任务并行库来保存文档。ajax调用可以在获得响应后调用成功/失败处理程序

看起来像这样

   $(function() {
        $('selector').click(function() {
            var id = $('selector for id').val()
            $.ajax({
                type: "POST",
                url: "/Controller/VideoUpload",
                data: { memberId: id },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    $("selector for status").(msg);
                },

            });
        });
    });
动作方法看起来像这样,尽管这可能不准确。您也不必这样做,因为ajax post应该允许在浏览器不等待响应的情况下执行方法调用

   [HttpPost]
   public ActionResult VideoUpload(int memberId)
   {
       var status = Task.Factory.StartNew(() => _docRepo.SaveDocument(DocumentType.Video, Request.Files, memberId));
           return Json(new { success = true, status = status.Result});
   }

MVC控制器操作不使用Web.config的
位置
部分。看见您可以通过编程方式增加它

是否也增加了页面超时?以编程方式设置MaxRequestLength属性将应用于站点范围。