问题描述
[HttpPost("files")]
public virtual async Task<IActionResult> Upload(IFormFile[] files) {
}
我检查了浏览器控制台,发送的请求是:
Request
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWkiZgifAgMo5d8v3
Accept: */*
Referer: http://localhost:5000/admin/files/upload
Origin: http://localhost:5000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML,like Gecko) Version/14.0.3 Safari/605.1.15
X-Requested-With: XMLHttpRequest
Request Data
MIME Type: multipart/form-data
Boundary: ----WebKitFormBoundaryWkiZgifAgMo5d8v3
Request Data:
------WebKitFormBoundaryWkiZgifAgMo5d8v3
Content-disposition: form-data; name="files[]"; filename="4e540d9d58d4bf6dd7f713e775a8f9bd 2.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryWkiZgifAgMo5d8v3--
知道我可能遗漏了什么吗?
解决方法
在我的文件控制器中,数组文件没有项目
内容配置:表单数据;名称=“文件[]”; filename="4e540d9d58d4bf6dd7f713e775a8f9bd 2.jpg"
在你的代码中,我们可以发现你的action方法Upload
接受一个名为files
的参数,但是你似乎用files[]
设置了表单数据键,导致发布的文件无法绑定到 IFormFile[] files
参数。
要修复它,您可以尝试将表单数据键从 files[]
修改为 files
。
formData.append("files",imgfile);
,
你忘了df[(~df.astype(bool)).sum(axis=1).le(2)]
1 2 3 4
0 X X X
1 X X X X
3 X X
4 X X X X
5 X X X X
?
FromForm
,
问题是 Redactor 总是用 [] 发送数据键,例如文件[]。
它允许将名称从 files
更改为其他名称,但始终添加 []。
所以我创建了一个自定义函数......也许对面临同样问题的人有用。
imageUpload: function(data,files,e,upload) {
data.append('file',files[0]);
return fetch('/files/images',{
method: 'POST',body: data
})
.then(response => {
return response.json()
})
.then(response => {
upload.complete(response);
})
.catch(response => {
upload.complete(response);
});
}