Javascript 如何在AngularJS和nodejs中使用文件模型指令上载文件
您好,我正在使用MEAN Stack中的文件上载概念。但文件不是 上传。我使用了文件模型指令 这是我的angular controller.js文件函数Javascript 如何在AngularJS和nodejs中使用文件模型指令上载文件,javascript,angularjs,node.js,mean-stack,Javascript,Angularjs,Node.js,Mean Stack,您好,我正在使用MEAN Stack中的文件上载概念。但文件不是 上传。我使用了文件模型指令 这是我的angular controller.js文件函数 app.controller("usercontroller",function($scope,$http, $localStorage,$location,flash){ $scope.adduser = function(message) { $http({ method:"POS
app.controller("usercontroller",function($scope,$http, $localStorage,$location,flash){
$scope.adduser = function(message)
{
$http({
method:"POST",
url:'api/adduser',
data:{name:$scope.name,email:$scope.email,password:$scope.password,address:$scope.address,sex:$scope.sex,file:$scope.file},
transformRequest:angular.identity,
headers:{'Content-Type':undefined }
}).then(function successCallback(response) {
if(response.data.error){
$scope.error = response.data.error;
}else{
$scope.Blog=response.data;
$localStorage.dd=$scope.Blog;
flash.setMessage(message);
$location.path('/allusers');
}
//console.log(response);
}, function errorCallback(response) {
alert("data is not comming here");
});
}
});
我对控制器使用了上面相同的文件controller.js指令
app.directive('fileModel', function ($parse) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function(){
scope.$apply(function(){
if (attrs.multiple) {
modelSetter(scope, element[0].files);
}
else {
modelSetter(scope, element[0].files[0]);
}
});
});
}
};
});
文件的输入类型为
<div class="form-group">
<label for="Phone_no" class="col-sm-3">ImageUpload</label>
<div class="col-sm-4 @if($errors->has('Phone_no')) has-error @endif">
<input class="form-control input-sm" name="files" file-model="file" type="file" >
</div>
</div>
然后在api.js文件中
module.exports.adduser = function (req, res)
{
var user = new Usermodel();
user.name = req.body.name;
user.email = req.body.email;
user.password = req.body.password;
user.address = req.body.address;
user.sex = req.body.sex;
console.log(req.file.filename);
user.save(function (err, data) {
if (err)
{
//console.log(err);
res.send(err);
} else
{
//console.log("valueEnterd");
res.send(data);
}
})
};
router.post('/adduser',userController.adduser)
这是userController.js文件
module.exports.adduser = function (req, res)
{
var user = new Usermodel();
user.name = req.body.name;
user.email = req.body.email;
user.password = req.body.password;
user.address = req.body.address;
user.sex = req.body.sex;
console.log(req.file.filename);
user.save(function (err, data) {
if (err)
{
//console.log(err);
res.send(err);
} else
{
//console.log("valueEnterd");
res.send(data);
}
})
};
这条线有错误
console.log(req.file.filename)强>
当我看到
console.log($scope.file);
在angular controller.js文件中
结果是
lastModified:1458666536337
lastModifiedDate:Tue Mar 22 2016 22:38:56 GMT+0530 (India Standard Time)
name:"shahzad Qureshi.jpg"
size:81107
type:"image/jpeg"
webkitRelativePath:""
__proto__:File