<input type="file" ng-model="articleimg" placeholder="upload related img">
$http.post($scope.base_url+'create.php',
{params {view:'view',articleimg:$scope.articleimg}})
.then(function(response){
console.log(response);
});
我想知道如何以及在何处指定 此angularjs帖子请求中的content-type:multipart / form-data?
请协助。 默认似乎是&#34; application / json,text / plain,&#34; 这不适用于图像/文件上传。
if(isset($_FILES['articleimg'])===true ){
echo "sucessfull";
}else echo "unsuccessfull";
上面的代码总是echos不成功。
答案 0 :(得分:4)
$ http.post angular中的快捷方法有三个参数,网址,请求数据和配置对象,您可以在其中设置如下所示的标题:
$http.post('/someUrl', data, {headers:{'Content-Type': 'multipart/form-data'}}).then(successCallback, errorCallback);
在你的情况下,它将是:
$http.post($scope.base_url+'create.php',
{params {view:'view',articleimg:$scope.articleimg}}, {headers:{'Content-Type': 'multipart/form-data'})
.then(function(response){
console.log(response);
});
您还可以构建请求对象,如下所示:
{
method: 'POST',
url: $scope.base_url+'create.php',
headers: {
'Content-Type': 'multipart/form-data'
},
data: {params {view:'view',articleimg:$scope.articleimg}}
}
然后像这样提出请求:
$http(req).then(function(){...}, function(){...});
如果要设置常见的应用程序范围标题,可以使用默认标题,默认情况下将添加到所有请求中,如下所示:
$httpProvider.defaults.headers.common['Content-Type'] = 'multipart/form-data';
这将为所有请求添加上述内容类型。
文档here
中的更多信息