Мне нужно загрузить файл на сервер, используя fetch()
из собственного приложения реагирования
У меня есть следующий код на Angular, который использует ng-file-upload
:
в этом функциональном файле прикреплена переменная FormData
function addDocumentToMessage(messageId, file) {
data.filepath = file;
data.name = file.name;
return Upload.upload({
url: BackendUrl + "/messages/" + messageId + "/attachments/",
file: file,
data: data
})
.then(responseHandler)
.catch(errorHandler);
}
Я пытался выполнить следующие действия, используя fetch()
, но это не работает должным образом: файл добавлен на сервер, но вложения и другие поля там не сохраняются. Вот код, который я пробовал:
document = { formData, name }
export const addDocumentToMessage = (token, logId, document) => {
const file = document.formData
const data = { filepath: file, name: document.name }
fetch(`${API_URL}/messages/${logId}/attachments/`, {
method: 'POST',
headers: { 'Authorization': `token ${token}`, 'Content-Type': 'multipart/form-data', Accept: 'application/json' },
body: JSON.stringify({ file: file, data: data })
})
.then(response => console.log(response.data))
.catch(error => console.log(error.message))
}