Почтовый файл с Axios и Vanilla JS - PullRequest
0 голосов
/ 14 января 2019

Я создал вход, который может получить файл. После того, как кнопка отправки нажата, я настраиваю форму Data, пытаюсь добавить в нее файл, а затем запускаю почтовый запрос axios на сервер.

К сожалению, я не знаю, как передать файл в dataData:

button.onclick = function(){
   let formData = new FormData();
   formData.append('myFile', e.dataTransfer.getData("files"));
   axios.post("/api/upload", formData)
      .then(response =>{
         console.log(response.data)})
      .catch(err=> {
         console.log("error")
   })
}

Какое исправление добавить в e.dataTransfer.getData ("файлы")? Входным файлом может быть изображение, PDF и т. Д. Входные данные выглядят так:

<input type="file" multiple/>

Спасибо.

1 Ответ

0 голосов
/ 14 января 2019

попробуйте добавить форму данных следующим образом:

form.append('fieldName', 'fileBufferData', 'fileName');

Имя поля будет именем, которое сервер ищет в форме. Буфер - это данные / содержимое файла. И имя файла .. ну это имя файла.

Или это может быть потому, что вы не установили заголовок:

            let form = new FormData();
            form.append('field', 'buffer', 'fileName');

            axios.post('/api/upload', form, {
                headers: {
                    'Content-Type': `multipart/form-data; boundary=${form._boundary}`
                }
            }).then((res) => {
                console.log(res.data);
            }).catch((err) => {
                console.log(err);
            });

Если это не поможет, это может быть проблемой на стороне сервера.

...