gpt4 book ai didi

java - Spring + Angular 无法两次上传同一文件

转载 作者:行者123 更新时间:2023-11-30 05:47:59 25 4
gpt4 key购买 nike

无法两次上传同一文件。如果上传不同的文件,它的工作

chrome 网络下出现错误

{ timeStamp: ......, status: 417
error: 'Bad Request',
message: 'Required request part 'file' is not present'
path: 'url as hosted on Tomcat'
}

Spring Boot Controller.java 文件

@PostMapping("/Post")
public ResponseEntity<String> handleFileUpload(@RequestParam("file")
MultipartFile file){ String Message=""; try .......(and so on)}

我的 Angular 组件

<form [formGroup]="uploadForm" (ngSubmit) = "onSubmit()">
<input type="file" id="selectFile" formControlName="file1" name="selectFile"
(change)="fileEvent($event)"/>

<input type="submit" name="Submit"/>
</form>

Component.ts 文件

fileEvent(e) {
this.data = e.target.files[0];
}
onSubmit() {
let headers: any = new Headers();
headers.append('Content-type', 'undefined');
let formData = new FormData();
formData.append("file", this.data);
const req5 = new HttpRequest('POST', 'url as hosted on TOMCAT', formData,
reportProgress: true,
responseType: 'text'
});
return this.httpClient.request(req5).subscribe(e => {(
console.log(e);
)}
}

我哪里出错了?

最佳答案

您的问题听起来像是存在浏览器缓存,第一次请求通过时,第二次会发生不同的情况。如果这是问题的根源,那么您可以尝试将随机查询参数附加到 POST URL 的末尾,例如

var url = 'url as hosted on TOMCAT';
url = url + (new Date()).getTime();

是的,将查询参数绑定(bind)到 POST 请求可能看起来很奇怪,但是应该没有什么可以阻止您这样做。理想情况下,这足以禁用浏览器缓存。

关于java - Spring + Angular 无法两次上传同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54515500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com