Я хочу отправить загруженный файл изображения вместе с данными, введенными пользователем, на серверную часть, которая реализована на JAVA.
`const payload = {
id: null,
name : Name,
email : Email
};
//data.append("myjsonkey", );
await fetch('http://localhost:8080/student/insertStudent', {
method: 'POST',
body: JSON.stringify(payload),
headers : {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})`
Используя эту реализацию, я смог отправить данные на бэкэнд с помощью запроса POST. Теперь я хочу прикрепить файл изображения к полезной нагрузке, которая будет получена серверной частью. Код, написанный для загрузки изображений:
`fileChangedHandler = (event) => {
this.setState({selectedFile: event.target.files[0]})
}
uploadHandler = () => {
console.info(this.state.selectedFile)
}
render() {
return (
<div>
<input type = "file" onChange = {this.fileChangedHandler}/>
<button onClick = {this.uploadHandler}>Upload!</button>
</div>
);
}`
Любая помощь будет принята с благодарностью.
Это javascript. Я хочу отправить данные из response.js в бэкэнд java, как я четко упомянул
Вы не показываете нам бэкэнд-код, поэтому нет необходимости помечать java.
О, мне так жаль.
Чтобы отправить загруженный файл из html-формы с помощью javascript в java-бэкэнд, вам нужно использовать multipart в теге формы, я только что сказал, что в случае, если вы отправляете данные из формы. хотя вы не упомянули о форме.
Вы можете отправлять данные с помощью formData ... вот пример кода для запроса api в реакции.
uploadHandler = () => {
const formData = new FormData();
formData.append('file', this.state.selectedFile);
axios.post('http://localhost:8080/student/image',
formData
);
}
Контроллер Java
@CrossOrigin(origins = "http://localhost:3000")
@RestController
@RequestMapping("/student/")
public class StudentController {
@RequestMapping(value = "image" ,method = RequestMethod.POST, consumes = "multipart/form-data")
@ResponseStatus(HttpStatus.CREATED)
public void image(
@RequestParam("file") MultipartFile file ){
// CODE HERE
}
}
Это не java.