首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IFormFile未被uploadMultiple请求填充

IFormFile未被uploadMultiple请求填充
EN

Stack Overflow用户
提问于 2018-03-28 08:58:42
回答 2查看 1.8K关注 0票数 7

我遇到的问题是,IFormFile列表不是用给定的文件填充的,而是当我调用HttpContext.Request.Form.Files时,我可以访问这些文件。我更喜欢使用IFormFile,因为它似乎是一种新的DotNetCore2.0方式。

我有以下请求有效载荷:

具有以下请求标头:

和Razor页面处理程序:

代码语言:javascript
复制
public async Task<ActionResult> OnPostSend(ConditionResponse conditionResponse)
    {
        var files = HttpContext.Request.Form.Files;
    }

条件响应模型:

代码语言:javascript
复制
public class ConditionResponse
{
    public List<string> Plots { get; set; }

    public string Comments { get; set; }

    public List<IFormFile> Files { get; set; }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-28 09:49:07

在查看了来自html5多文件上载的请求之后,我注意到请求没有向文件名( file N)添加索引。Dropzone.js是这样做的,所以有一个工作要做。如果将paramName选项添加到Dropzone JS配置中,并让它调用返回文件的方法,您将得到与html5多文件上传相同的行为。

代码语言:javascript
复制
function myParamName() {
                return "files";
            }

 Dropzone.options.myDropzone = {
                uploadMultiple: true,
                paramName: myParamName,
}
票数 9
EN

Stack Overflow用户

发布于 2018-05-13 20:56:51

这个被接受的答案非常有效,我不知道为什么和如何,但它是有效的。我只想去掉这个额外的函数,也就是说,我们可以这样使用它:

代码语言:javascript
复制
 Dropzone.options.myDropzone = {
                uploadMultiple: true,
                paramName: () => "files",
}

或者如果旧浏览器也是目标:

代码语言:javascript
复制
 Dropzone.options.myDropzone = {
                uploadMultiple: true,
                paramName: function () { "files" },
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49530188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档