Я пытаюсь загрузить несколько файлов вместе с некоторыми данными формы, используя этот угловой пакет, https://github.com/danialfarid/angular-file-upload. Вот мой код:Загрузка нескольких файлов не работает
var files = ... // get the files (this is working, don't worry)
return $upload.upload({
url: '/some_resource',
type: 'POST',
headers: { 'Content-Type': 'multipart/form-data' },
data: { myObj: JSON.stringify(myObj) },
file: files
});
Если есть только один файл в files
, то он загружает правильно - но если есть несколько файлов, то ничего не будет загружен. В документации, он говорит:
Загрузить несколько файлов: только для HTML5 FormData браузеров (не IE8-9), если вы передаете массив файлов в файл опции будет загружать их все вместе в одном запросе.
Я не совсем уверен, что я делаю что-то неправильно или нет (я использую Chrome).
Мое следующее предположение, что проблема связана с бэкэнд (я использую Express.js). Так как запрос 'multipart/form-data'
, я бегу через multer
(https://github.com/expressjs/multer), например так:
app.post('/some_resource', multer({ dest: '../tmpUploads' }), function(req, res) {
console.log(req.files); // <- prints {} when uploading multiple files
});
Как я уже сказал, моя установка работает прекрасно, когда files
содержит только один файл. Любая помощь будет принята с благодарностью!
Во-первых, я хотел бы попробовать использовать то есть Fiddler, чтобы проверить, является ли проблема на клиенте или на сервере. Во-вторых, попробуйте добавить имена для файлов: 'fileName' или' fileFormDataName'. Я пробовал этот модуль, но поскольку я не мог отказаться от поддержки IE8/9, теперь я использую этот [jQuery плагин] (https://blueimp.github.io/jQuery-File-Upload/angularjs.html), и он отлично работает. –
Добавление свойства 'fileFormDataName' полностью сработало! Благодаря! – Cody
@ Коди, какой-нибудь шанс показать нам, как вы его работали? Я столкнулся с той же проблемой и попытался немного поиграть с 'fileFormDataName', но не очень эффективно до сих пор ... любая помощь, которую вы могли бы предоставить, была бы очень благодарна :) –