Я пытаюсь отправить информацию о загруженных файлах с клиента на сервер, используя angularjs .
Я включил onchange в элемент file, чтобы получить список файлов, как показано ниже.
<input type="file" id="file" name="file" ng-file-model="files" multiple
onchange="angular.element(this).scope().getFiles(this)" />
Но чтобы показать выбранные файлы на веб-странице и разрешить выбирать файлы из нескольких каталогов, я использую директиву ngFileModel.
Каждый раз, когда мы выбираем файл, я выдаю предупреждение, в котором объект отображается как [объектный файл]. При нажатии на кнопку «Отправить» я пытаюсь перебрать файлы и добавить файлы в объект FormData и выполнить некоторые дополнительные функциональность, пример кода, как показано в приведенных ниже фрагментах кода.
Я попытался добавить файлы с помощью тега директивы "ngFileModel
" и перебрать файлы, как показано ниже:
for (var i in $scope.filesToUpload) {
alert("from directive" + $scope.filesToUpload[i]);
//some logic
}
В приведенном выше случае файлы печатаются как [object Object]
вместо [object File]
.
Добавление файлов с использованием $ scope.files:
for (var i in $scope.files) {
alert("scope.files" + $scope.files[i]);
// some logic
}
В указанном выше случае файлы также печатаются как [object Object]
вместо [object File]
. Еще одна проблема, которую я видел здесь, - это когда файлы выбираются (getFiles(this)
) из нескольких папок и нажимают кнопку «Отправить», только при этом сохраняется информация о последнем выбранном файле.
Демо: http://plnkr.co/edit/ch4fVz7iXmJRPthvCsQt?p=preview
Пожалуйста, посмотрите демонстрацию по ссылке выше, когда пользователь выбирает файл (один или несколько), я печатаю объект, который показывает [объектный файл]. Но при нажатии на кнопку отправки, когда объект распечатывается разными способами, как показано в приведенных выше фрагментах кода, он печатается как [объект объекта]. Я думаю, что виновником является директива ngFileModel, но мне нужно выбрать несколько файлов из разных директив и разрешить пользователю удалять перед отправкой мне нужна эта директива. Как напечатать объект файла как [объектный файл] вместо [объектный объект]. Любые входные данные?