我正在尝试从JavaScript附加多个文件,以将它们发送到后端(.net核心Web API)。
这是我在服务器上需要文件的方法:
[HttpPost("upload-files")]
public async Task<IActionResult> PostAsync([FromForm]InsertFilesRequest request)
{
var result = await _fileProcessorService.Upload(request);
return Ok(result);
}
这里是InsertFilesRequest
类:
public class InsertFilesRequest
{
public List<InsertRequest> FileItems { get; set; }
}
如您所见,我正在接收称为InsertRequest
的FileItems
列表
这是我正在使用javascript进行的操作:
export const sendFiles = data => {
const formData = new FormData();
formData.append('FileItems', data.files); // data holds list of files
return axiosWrapper.request({
url: '/files/upload-files',
method: 'POST',
data: formData,
});
};
我也尝试过:
export const sendFiles = data => {
const f = new FormData();
let fileItems = [];
for (let i = 0; i < files.length; i++) {
var repositoryItem = {
file: files[i],
};
fileItems.push(repositoryItem);
}
return axiosWrapper.request({
url: '/files/upload-files',
method: 'POST',
data: f,
});
};
这两个示例都不起作用,我真的不知道如何将多个文件发送到服务器,总计数为0。
谢谢!
欢呼声
您可以尝试这个
const sendFiles = data => {
const formData = new FormData();
for(let i = 0; i < data.files.length; i++){
formData.append(`filename${i}`, data.files[i]);
}
fetch('/files/upload-files',{
method:'POST',
body: formData,
})
.then(res => res.json())// to parse the response body to json format.
.then(res =>{
// your response from the server
})
.catch(error => {
//to handle errors
})
}
一个github帖子,显示您如何接收数据here