IFormFile 未由 dropzone uploadMultiple 请求填充
IFormFile not being populated by dropzone uploadMultiple request
我遇到的问题是 IFormFile 的列表没有填充给定的文件,但是当我调用 HttpContext.Request.Form.Files;然后我可以访问这些文件。我更愿意使用 IFormFile,因为它似乎是新的 Dotnet 核心 2.0 处理方式。
我有以下请求负载:
根据以下请求 headers:
和 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; }
}
查看来自 html5 多文件上传的请求后,我注意到该请求没有将索引添加到文件名 (files[n])。 Dropzone.js 这样做是为了解决这个问题。如果您将 paramName 选项添加到 Dropzone JS 配置并让它调用一个方法,其中 returns 个文件您将获得与 html5 多文件上传相同的行为。
function myParamName() {
return "files";
}
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: myParamName,
}
已接受的答案非常有效,我不确定原因和方式,但它确实有效。我只是想摆脱那个附加功能,即我们可以这样使用它:
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: () => "files",
}
或者如果旧版浏览器也成为目标:
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: function () { "files" },
}
我遇到的问题是 IFormFile 的列表没有填充给定的文件,但是当我调用 HttpContext.Request.Form.Files;然后我可以访问这些文件。我更愿意使用 IFormFile,因为它似乎是新的 Dotnet 核心 2.0 处理方式。
我有以下请求负载:
根据以下请求 headers:
和 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; }
}
查看来自 html5 多文件上传的请求后,我注意到该请求没有将索引添加到文件名 (files[n])。 Dropzone.js 这样做是为了解决这个问题。如果您将 paramName 选项添加到 Dropzone JS 配置并让它调用一个方法,其中 returns 个文件您将获得与 html5 多文件上传相同的行为。
function myParamName() {
return "files";
}
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: myParamName,
}
已接受的答案非常有效,我不确定原因和方式,但它确实有效。我只是想摆脱那个附加功能,即我们可以这样使用它:
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: () => "files",
}
或者如果旧版浏览器也成为目标:
Dropzone.options.myDropzone = {
uploadMultiple: true,
paramName: function () { "files" },
}