#node.js #ajax #rest #express
#node.js #ajax #остальное #экспресс
Вопрос:
Прямо сейчас я отправляю файл на мой сервер expressjs, используя в качестве formdata, используя ajax.
const fileChooser = document.getElementById('config-file-upload');
const file = fileChooser.files[0];
let formData = new FormData();
formData.append('file', file);
$.ajax({
url: baseURL "upload-doc",
type: 'POST',
data: formData,
processData: false,
contentType: 'multipart/form-data'
});
Это отлично отправляет данные на мой сервер, но когда я отправляю файл на сервер, он всегда возвращается неопределенным.
app.post('/upload-doc', (req, res) => {
console.log(req.body);
});
Я пробовал использовать библиотеки, такие как multer, но я все еще получаю undefined при попытке доступа к файлам
const upload = multer({dest: 'tmp/uploads'});
app.post('upload-doc', upload.any(), (req, res) => {
console.log(req.files);
});
Спасибо за помощь.
Комментарии:
1. Сохраняйте
multer
способ и используйтеconst file = $("config-file-upload")[0].files[0];
вместоconst file = fileChooser.files[0];
2. @hoangdv После того, как я это сделал, я столкнулся с ошибкой, в которой говорилось, что граница не найдена. Из того, что я видел в других сообщениях stackoverflow, удаление заголовка content type должно исправить это, но после этого я все еще получаю undefined. Я также попытался установить в заголовке типа контента значение ‘application / x-www-form-urlencoded’, но тоже безуспешно. Может ли это быть связано с кодировкой в заголовках или, может быть, с какой-то другой проблемой кодировки символов?