Angular文件上传formData
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();
被触发!!(这东西很好用)。以下是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){
}
});
我不知道如何解决这个问题,proid:product_id
返回作为[object Object]
,如果我分配提供作为一个固定的整数即proid:23
,它的工作。
请帮助! !
您需要访问product_id的值,而不仅仅是响应有效负载:
$scope.product_id = response.data.product_id;
同样,因为你在使用promise,你需要链接你的方法。试一试:
$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
块的回调(参见文档)。
相关文章:
- Javascript,文件输入和FormData问题
- 如何使用FormData将文件上传到服务器
- 使用Codeigner通过JQueryAJAX发送FormData和上传文件
- 将 FormData 对象放入数组中以从不同的输入文件上载文件
- FormData()只发送对象类型的多文件
- 通过 Ajax FormData 发布文件
- 在 Java 文件中处理从 Ajax 发送的 FormData
- 是否可以在 sinle JavaScript 文件中创建 FormData() 的多个实例
- PHP 看不到来自 javascript ajax FormData 的数据(输入类型文件)
- 在 Javascript 中将图像添加到 formData.(无输入类型文件)
- 使用 Ajax 上传文件 - FormData
- 通过 Ajax 和 FormData 发送文件失败
- Ajax FormData 使用 POST 类型,但在 PHP 文件中无法获取任何请求
- 使用 AJAX 上传文件而不使用 FormData (IE9)
- JQuery/AAJAX文件使用FormData上传,文件不发布
- 如何使用FormData将文件发送到Nodejs,并让Node发回确认消息
- Nodejs Formdata文件上传
- 正在上载带有FormData和multer的文件
- 我如何检查如果FormData文件是空的
- 将Json对象和FormData(文件)发送到带有参数MVC的控制器