我遇到的问题是IFormFile列表没有填充给定的文件,但是当我调用HttpContext.Request.Form.Files时;然后我可以访问这些文件。我更喜欢使用IFormFile,因为它似乎是新的Dotnet核心2.0做事方式。
Razor页面处理程序:
public async Task<ActionResult> OnPostSend(ConditionResponse conditionResponse)
{
var files = HttpContext.Request.Form.Files;
}
条件响应模型:
public class ConditionResponse
{
public List<string> Plots { get; set; }
public string Comments { get; set; }
public List<IFormFile> Files { get; set; }
}
答案 0 :(得分:7)
在查看来自html5多文件上传的请求后,我注意到请求没有将索引添加到文件名(files [n])。 Dropzone.js这样做是有解决方法的。如果你将paramName选项添加到Dropzone JS配置并让它调用一个返回文件的方法,你将获得与html5多文件上传相同的行为。
function myParamName() {
return "files";
}
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: myParamName,
}
答案 1 :(得分:3)
接受的答案完美无缺,我不知道为什么以及如何,但它确实有效。我只是想摆脱那个额外的功能,即我们可以像这样使用它:
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: () => "files",
}
或者,如果旧浏览器也是目标:
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: function () { "files" },
}