如何将 angular 中的 formData 与文件一起发送到 spring 引导后端
How to send formData in angular with a file to spring boot backend
我正在使用 angular6 发送带有用户详细信息的 formData 以及图像文件。但是我无法通过对 RequestModel 使用 @ModelAttribute 在 spring 引导后端中获取数据。
Please change the spring boot backend code with two parameters. Those two parameters should be the values of fromData key used in angular. First key should should be the file which contains image and second key should the other parameters in the form which is stringified using JSON.stringify()
@PostMapping("/advocate_ad")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<?> saveAdvocateAd(@RequestParam(value="image") MultipartFile image,@RequestParam(value="advocateAd") String advocateAdForm ) {
try {
ObjectMapper mapper = new ObjectMapper();
AdvocateAdForm advocateAd = mapper.readValue(advocateAdForm,AdvocateAdForm.class);
AdvocateAd advocateAd1 = new AdvocateAd(advocateAd.getTargetCities(),advocateAd.getStatus().charAt(0),advocateAd.getSummary(),
advocateAd.getDetails(),advocateAd.getUrl(),advocateAd.getCreationDate(),advocateAd.getValidityStartDate(),
advocateAd.getValidityEndDate(),advocateAd.getAdvocateId(),image.getBytes());
advocateAdService.save(advocateAd1);
return ResponseEntity.ok().build();
}catch(Exception e) {
e.printStackTrace();
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Angular 6 code `export class AdminModule1 {
advocateId: number;
summary: string;
targetCities: string;
details: string;
url: string;
status: string;
creationDate: string;
validityStartDate: string;
validityEndDate: string;
image: File;
}`
`
Service File
let formData=new FormData();
formData.append('advocateAd',JSON.stringify(value));
formData.append('image',param.image);
//console.log(formData);
return this.http.post<string>(admin,formData);
}`
我正在使用 angular6 发送带有用户详细信息的 formData 以及图像文件。但是我无法通过对 RequestModel 使用 @ModelAttribute 在 spring 引导后端中获取数据。
Please change the spring boot backend code with two parameters. Those two parameters should be the values of fromData key used in angular. First key should should be the file which contains image and second key should the other parameters in the form which is stringified using JSON.stringify()
@PostMapping("/advocate_ad")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<?> saveAdvocateAd(@RequestParam(value="image") MultipartFile image,@RequestParam(value="advocateAd") String advocateAdForm ) {
try {
ObjectMapper mapper = new ObjectMapper();
AdvocateAdForm advocateAd = mapper.readValue(advocateAdForm,AdvocateAdForm.class);
AdvocateAd advocateAd1 = new AdvocateAd(advocateAd.getTargetCities(),advocateAd.getStatus().charAt(0),advocateAd.getSummary(),
advocateAd.getDetails(),advocateAd.getUrl(),advocateAd.getCreationDate(),advocateAd.getValidityStartDate(),
advocateAd.getValidityEndDate(),advocateAd.getAdvocateId(),image.getBytes());
advocateAdService.save(advocateAd1);
return ResponseEntity.ok().build();
}catch(Exception e) {
e.printStackTrace();
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Angular 6 code `export class AdminModule1 {
advocateId: number;
summary: string;
targetCities: string;
details: string;
url: string;
status: string;
creationDate: string;
validityStartDate: string;
validityEndDate: string;
image: File;
}`
`
Service File
let formData=new FormData();
formData.append('advocateAd',JSON.stringify(value));
formData.append('image',param.image);
//console.log(formData);
return this.http.post<string>(admin,formData);
}`