Почтовый файл с Axios и Vanilla JS
Я создал вход, который может получить файл. После того, как кнопка отправки нажата, я настраиваю форму Data, пытаюсь добавить в нее файл, а затем запускаю аксиальный пост-запрос на сервер.
К сожалению, я не знаю, как передать файл в form Data:
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 ответ
Попробуйте добавить formData следующим образом:
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);
});
Если это не поможет, это может быть проблемой на стороне сервера.