[英]Angular File upload formData
我正在使用Angular-File-Upload ,问题是我无法将formData与文件一起发送。 以下是我的代码:
$scope.addProducts = function(){
console.log($scope.product);
ProductApi.addProduct($scope.product)
.then(function(response){
ngNotify.set('Your product has been added!', {
position: 'bottom',
duration: 2000
});
$scope.product_id = response.data;
uploaderImages.uploadAll();
})
.catch(function(response){
console.log(response.data);
})
}
上面的代码所做的是,一旦提交表单,该表单将通过api调用发送。 响应将是product_id
和uploaderImages.uploadAll();
product_id
被触发! 以下是将文件发布到服务器的uploaderImages
:
var uploaderImages = $scope.uploaderImages = new FileUploader({
url: '/api/productimg',
onBeforeUploadItem: function(prod){
var ids = $scope.product_id
var prodid = { proid: $scope.product_id} ---> empty
prod.formData.push(prodid)
console.log($scope.product_id) ----> product_id = 32
},
onCompleteAll: function(){
console.log($scope.product_id); ----> product_id = 32
},
onSuccessItem: function(prodId,response,status,headers){
}
});
我不知道如何解决这个prob: proid:product_id
返回为[object Object]
,如果我将proid分配为一个固定的整数,即proid:23
,它就可以工作。
请帮忙!!!!!
您不仅需要访问有效负载,还需要访问product_id的值:
$scope.product_id = response.data.product_id;
另外,由于您正在使用Promises,因此需要链接方法。 尝试:
$scope.addProducts = function(){
console.log($scope.product);
ProductApi.addProduct($scope.product)
.then(function(response) {
return ngNotify.set('Your product has been added!', {
position: 'bottom',
duration: 2000
}, function(error) {
console.log(error);
}) // assuming this is async so add another then block below to execute once this is done
.then(function(response) {
$scope.product_id = response.data.product_id; // response.data will give you the whole response payload if the object returned is {product_id: 123}
uploaderImages.uploadAll();
});
}
请注意,错误处理程序是对第一个.then
块的回调( 请参阅docs )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.