Обязательная часть запроса 'file' отсутствует - Java Spring и Angular 7 - PullRequest
0 голосов
/ 18 февраля 2019

У меня проблема с методом POST в Angular 6. Я хочу отправить изображение на сервер, я попытался из Почтальона, и моя загрузка Spring довольно хорошо работает, и мой образ сохраняется на сервере, но когда яотправлено из проекта Angular У меня ошибка:

2019-02-18 10: 40: 07.086 WARN 6496 --- [nio-8080-exec-5] .wsmsDefaultHandlerExceptionResolver: Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: необходимая часть запроса 'file' отсутствует]

Это мой шаблон:

<input type="file" (change)="onFileSelectedMethod($event)">
<button (click)="onUploadButton()">Upload!</button>

Это мой компонент:

export class AppComponent implements OnInit {

 selectedFinenew: File = null;
 constructor(private data: DataServiceService, private http: HttpClient) { }
  ngOnInit() {}
 onFileSelectedMethod(event) {
    this.selectedFile = <File>event.target.files[0];
  }

  onUploadButton() {
    const fb = new FormData();
    fb.append('image', this.selectedFile, this.selectedFile.name);
    this.http.post('api/cateogry/dar/uploadFile', fb).subscribe(res => {
      console.log(res);
    }
    );
  }

Мой метод в Spring Boot:

@PostMapping("/uploadFile")
        public UploadFileResponse uploadFile(@RequestParam("file") MultipartFile file) {
            String fileName = fileStorageService.storeFile(file);

            String fileDownloadUri = ServletUriComponentsBuilder.fromCurrentContextPath()
                    .path("/downloadFile/")
                    .path(fileName)
                    .toUriString();

            return new UploadFileResponse(fileName, fileDownloadUri,
                    file.getContentType(), file.getSize());
        }

1 Ответ

0 голосов
/ 18 февраля 2019

Вам необходимо предоставить file в пределах вашего formData.

Вам следует изменить

fb.append('image', this.selectedFile, this.selectedFile.name);

на

fb.append('file', this.selectedFile, this.selectedFile.name);

или

Изменить

@RequestParam("file") MultipartFile file

на

@RequestParam("image") MultipartFile file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...