FileReader не вызывает событие функции загрузки - PullRequest
0 голосов
/ 22 мая 2019

Я хочу загрузить файл на сервер с помощью реакции, для этого я использую интерфейс 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 и не утешает сообщение

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