Угловой не POSTing многочастных данных, так что экспресс не получает ничего?
У меня есть форма с 2 файлами и текстовая область для отправки на сервер, созданная с помощью node.js для обработки части загрузки на node/express(4.0). Я использовал multer. В то время как для обработки загрузки с угловой стороны я передал на angular-file-upload
Я пытаюсь сделать экспресс-часть очень простой на данный момент, чтобы проверить тот факт, что она на самом деле работает
/// УЗЕЛ JS EXPRESS
app.use(multer({ dest: __dirname + '/public/uploads/',
rename: function (fieldname, filename) {
return filename; //.replace(/\W+/g, '-').toLowerCase() + Date.now()
}
}))
/// УГЛОВОЙ
cmsApp.controller("MyController", ['$scope', '$location', '$upload', function($scope, $location, $upload) {
$scope.title = $location;
//$scope.saveMiscs = function() {
$scope.submit = function() {
console.log("saving miscs");
var file_1 = $scope.formfile1;
var file_2 = $scope.formfile2;
//console.log('file is ', JSON.stringify(file_regole), " + " + JSON.stringify(file_statuto));
$scope.upload = $upload.upload({
url: '/api/misc/filupload1', //upload.php script, node.js route, or servlet url
file: file_1, // or list of files ($files) for html5 only
}).progress(function(evt) {
console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
}).success(function(data, status, headers, config) {
// file is uploaded successfully
console.log("upload completed: ", data);
});
};
$scope.onFileSelect = function($files) {
$scope.files = angular.copy($files);
console.log($scope.files); // Returns my object
}
$scope.setFiles = function(element) {
$scope.$apply(function($scope) {
console.log(element.files);
if(element.id == "form__file1")
file_1 = element.files;
else if(element.id == "form__file2")
file_2 = element.files;
});
};
}]);
/// УГЛОВОЙ HTML
<form id="modify_form" ng-submit="submit()" ng-controller="MyController" enctype="multipart/form-data">
<div class="intro_detail" style="margin-top:36px;">
<div class="dotted blue"></div>
<div class="box_title">Documents</div>
Load file 1 here<br>
<input type="file" id="form_1_fld" class="" name=""
onchange="angular.element(this).scope().setFiles(this);" ng-model="file_1"/><br>
<br>
Load file 2 here<br>
<input type="file" id="form_2_fld" class="" name=""
onchange="angular.element(this).scope().setFiles(this);" ng-model="file_1"/>
<div class="dotted spacer_small blue"></div>
</div><!-- END INTRO DETAIL -->
<div class="form_viewport">
<div class="full_container">
<label>Write something in here:</label><br>
<textarea ng-model="text_desc" id="form__desc"></textarea>
</div>
<div class="clearfix"></div>
<div class="full_container" style="text-align:center; margin-top:50px;">
<input type="button" class="submit_cancel" value="Cancel" />
<input type="submit" class="submit_save" value="Save" />
</div>
</div><!-- END FORM VIEWPORT -->
</form>
Если я попытаюсь опубликовать в простой форме, которая не включает в себя угловую, простую многокомпонентную форму с одним полем "file", то nodejs/multer возьмет файл и загрузит без проблем, но если я использую этот сценарий с использованием express в Похоже, что на сервере нет файлов.