Привет, извините, я явно не проиллюстрировал вход lf-ng-md-file.
Эта угловая директива фокусируется на том, чтобы материал выглядел и загружал файловую базу на ajax.
Итак, самое главное, вам нужно извлечь файлы самостоятельно из привязки данных «lf-files», а не от входного элемента, потому что он очищается каждый раз после файла разрешения.
Данные «lf-files» представляют собой переменную массива, объект в массиве содержит свойства с lfFileName (имя файла), lfFile (файл-объект) и lfDataUrl (для предварительного просмотра) из файла ввода разрешения.
Вы можете наблюдать "lf-файлы", используя $ watch.
HTML:
<lf-ng-md-file-input lf-files='files' multiple> </lf-ng-md-file-input>
JavaScript:
app.controller('MyCtrl',function($scope){
$scope.$watch('files.length',function(newVal,oldVal){
console.log($scope.files);
});
});
Таким образом, после завершения выбора файлов нужно настроить данные, как показано ниже, чтобы соответствовать вашей стороне сервера.
JavaScript:
app.controller('MyCtrl',function($scope){
...
$scope.onSubmit = function(){
var formData = new FormData();
angular.forEach($scope.files,function(obj){
formData.append('files[]', obj.lfFile);
});
$http.post('./upload', formData, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).then(function(result){
// do sometingh
},function(err){
// do sometingh
});
};
...
});
В моем случае я использовать Node.js (экспресс + превосходно) на стороне сервера, «Грозная» представляет собой модуль узла для синтаксического анализа данных формы, то есть другие аналогичные, как «Multer» ,
Сервер:
var express = require('express');
var formidable = require('formidable');
var app = express();
app.use(express.static(__dirname + '/public'));
...
app.post('/upload',function(req,res){
var form = new formidable.IncomingForm();
form.uploadDir = __dirname +'/public/uploads';
//file upload path
form.parse(req, function(err, fields, files) {
//you can get fields here
});
form.on ('fileBegin', function(name, file){
file.path = form.uploadDir + "/" + file.name;
//modify file path
});
form.on ('end', function(){
res.sendStatus(200);
//when finish all process
});
});
...
Я надеюсь, что это поможет.
Uncaught TypeError: Невозможно прочитать файлы свойств неопределенных - это видно на консоли для перетаскивания.
SSR
Привет ~ Я думаю, мне нужно больше деталей об исходном коде, возможно, вы можете задать в github – shuyu
Эй. Я исправил и создал PR. :) – SSR