javascript - 无法匹配 RESTful Multipart File 参数
问题描述
我正在尝试通过 fetch 库从 Web 客户端将文件发送到我的 Spring Boot 代码。以下给了我一个 400,BAD 请求说
Required request part 'file' is not present
但是,据我所知,我确实提供了“文件”。
Java签名是:
@PostMapping("/async-files")
public DeferredResult<ResponseEntity<JobExecutionResult>> asyncUploadSoftLayerFile(@RequestParam(name = "file") MultipartFile multiPartFile)
throws JobParametersInvalidException, JobExecutionAlreadyRunningException, JobRestartException,
JobInstanceAlreadyCompleteException, IOException, JobExecutionAlreadyRunningException {
打字稿:
var url = async_files;
const formData = new FormData();
formData.append('file',file);
// formData.append('file',new Blob([file],{type: 'multipart/form-data'}),fileName);
const response = fetch(url, {
method: 'POST',
body: formData,
headers: {
'X-Requested-With': 'XMLHttpRequest',
}
});
result = response;
'file' 变量是一个 Javascript 字符串。它必须是这种方式,因为它在网络工作者内部运行,我想不出任何方法来传递 FileList 对象。如果我从 Java 中删除“文件”,它说它找不到多部分文件。如果我将 3 个对象传递给 FormData.append 方法,它会抱怨第二个对象不是对象(奇怪,因为我认为该方法需要一个字符串或一个 blob)。
我很感激你的帮助。我不能在 Javascript 中键入一行,而它却找不到要抱怨的地方。
谢谢,樵夫
解决方案
推荐阅读
- unicode - Unicode 组合字符的实际最大数量是多少?
- unix - 带有 zip 的 sendmail 正在破坏 zip 中的第一个文件
- json - 如何从主视图调用可映射类中的变量
- node.js - 如何在父进程的 SIGINT 上永久监控子进程?
- android - 在活动中添加/替换后,片段的所有元素都为空
- android - 无法使用 Linking.openURL 打开电话
- python - 如何为熊猫数据框的特定列添加值?
- javascript - 无法使用 js crm 2016 清除查找值
- java - Java 应用程序代码隔离
- android - Android Webview 花时间为大型表单数据输入文本