【问题标题】:How can I upload files in ASP.NET5 using ajax?如何使用 ajax 在 ASP.NET 5 中上传文件?
【发布时间】:2016-03-31 16:24:31
【问题描述】:

我已经阅读了很多关于使用传统 html 表单上传文件和在服务器端使用 IFormFile (ASP.NET5 RC) 的帖子。但是,我想使用 ajax(特别是 ng-file-upload)上传文件,而使用 ajax 时 IFormFile 似乎不起作用。请求负载如下所示:

------WebKitFormBoundaryqGdWTqE8FFBpVPbA
Content-Disposition: form-data; name="file[0]"; filename="mydoc.pdf"
Content-Type: application/pdf


------WebKitFormBoundaryqGdWTqE8FFBpVPbA--

我相信这些文件正在 Request.Body 中传递,但我不确定如何从那里提取它们。

【问题讨论】:

    标签: asp.net angularjs file-upload asp.net-core ng-file-upload


    【解决方案1】:

    我刚刚使用 Kendo UI 上传控件执行此操作,我还发现未填充 IFormFile 参数。我使用 Request.Form.Files 让它工作

     foreach (var file in Request.Form.Files)
            {
                    var fileBytes = new byte[file.Length];
    
                    await file.OpenReadStream().ReadAsync(fileBytes, 0, (int)file.Length);
    
                    SaveDoc(fileBytes, Path.GetFileNameWithoutExtension(fileName), docTypeId, enrollmentId, Path.GetExtension(fileName).Replace(".", ""), comments: comments);
            }
    

    【讨论】:

      【解决方案2】:

      当您逐个上传每个文件时会填充它:

      [HttpPost("upload")]
      public async Task<IActionResult> Upload(IFormFile file)
      {
          ...
      }
      

      【讨论】:

        猜你喜欢
        • 2017-11-12
        • 2016-04-18
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        • 2012-09-25
        • 1970-01-01
        • 2015-07-28
        • 1970-01-01
        相关资源
        最近更新 更多