Я хочу загрузить файл на сервер с помощью реакции, для этого я использую интерфейс fileReader, но ни одно из его событий (onload, onprogress) не запускается ни в одном из браузеров.Мне нужен файл в req.file, так как я использую expressJS для бэкэнда (multer) для сохранения файла, multer не будет сохранять, если он находится в req.body
Я пробовал несколько решений, но ни одно из них не работает
jsx
<form onSubmit={(event) => handleFileUpload(event)}>
<input type="file" ref={(ref) => { this.uploadInput = ref; }} />
<div>
<Button type="Submit"><CloudUpload /></Button>
</div>
</form>
javascript
function handleFileUploadHelper(payload,getState) {
payload.preventDefault();
const file = payload.target.elements[0].files;
if(file.length > 0) {
const reader = new FileReader();
reader.onload = ((event) => {
const formData = new FormData();
formData.append('file', event.target.result.split(',')[1]);
const resp = post('/api/resources/upload', formData); // post uses fetch API
})
reader.onerror = (event) => console.log(event);
reader.onabort = (event) => console.log(event);
reader.onprogress = (event) => console.log(event);
}
}
Это не вызывает API и не утешает сообщение