提问人:copenndthagen 提问时间:11/17/2023 更新时间:11/18/2023 访问量:46
尝试使用上传文件进行 POST 调用时出现 HTTP 400 错误
HTTP 400 error while trying to make a POST call with upload file
问:
我有一个与 Java 控制器中定义的文件上传相关的端点,如下所示;
@RequestMapping(value = "/upload/file", method = { RequestMethod.POST})
public MyResponse<?> uploadFile(@RequestHeader(required = true) String country, @RequestHeader(required = true) String user, @RequestParam("file") MultipartFile file)
{
}
我正在尝试从UI调用它,如下所示;
const response = await MyReactUtility.postMultipartFileContent(endpoint, result);
postMultipartFileContent(url, data) {
let formData = new FormData();
formData.append("file", data.files[0]);
return axios.post(url, formData).catch(err => console.log("Axios multipart err: ", err));
},
我传递给上面的“postMultipartFileContent”的“data”参数如下所示;
在 Chrome 网络选项卡中,我可以看到 Payload 为;
Form Data
file: (binary)
但是,我看到 400 错误请求错误。
答:
0赞
Akshit
11/17/2023
#1
该问题可能与标头或您在前端中处理文件的方式有关。 试试这个:
const response = await MyReactUtility.postMultipartFileContent(endpoint, result);
postMultipartFileContent(url, data) {
let formData = new FormData();
formData.append("file", data.files[0]);
return axios.post(url, formData, {
headers: {
'Content-Type': 'multipart/form-data',
'country': 'your_country_value', // Replace with actual country value
'user': 'your_user_value' // Replace with actual user value
}
}).catch(err => console.log("Axios multipart err: ", err));
}
您可以根据需要更改值的使用。
评论
logging.level.org.springframework.web: DEBUG
application.properties
required = false