Я пытаюсь передать изображение из моего приложения Angular в Spring, но мне кажется, что я не могу заставить его работать.Когда я отправляю запрос POST из angular вместе с файлом, весенняя загрузка, похоже, совсем не реагирует, поэтому я протестировал его с PostMan, и у меня появляется следующая ошибка:
"timestamp": "2019-05-05T06:45:26.907+0000",
"status": 500,
"error": "Internal Server Error",
"message": "No primary or default constructor found for class java.io.File",
"path": "/upload"
и в SpringЗагрузка:
ERROR 18100 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: No primary or default constructor found for class java.io.File] with root cause
, а также не удалось выполнить декодирование символов.
В выводе Spring, похоже, правильно угадан тип файла (изображение jpeg) и его имя.
Вот весенний загрузочный приемник:
@RequestMapping(method = RequestMethod.POST,value ="/upload")
public void postImage(File file) throws IOException {
System.out.println("received");
}
Позже я планирую записать изображение в папку, но сейчас я просто хочу его получить.
Ниже угловая часть
<form>
<div>Title: <input type="text" id="input" [(ngModel)]="img.name"
[ngModelOptions]="{standalone: true}">
<br>
<input type="file" (change)='handleImages($event)' >
</div>
<br>
<button type="submit" class="confirm"(click) =
'add()'>Confirm</button>
</form>
component.ts:
handleImages(Event){
this.selectedFile = Event.target.files[0];
console.log(this.selectedFile);
this.http.post('http://localhost:8080/upload',this.selectedFile)
}