2016-11-15 13 views
0
<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); 
    }); 

このanglejs投稿要求でコンテンツタイプ:multipart/form-dataを指定する方法と場所を知りたいと思いますか?設定コンテンツタイプ:角度js投稿要求

助けてください。 デフォルトは "application/json、text/plain"と表示されます。 画像/ファイルのアップロードでは機能しません。

if(isset($_FILES['articleimg'])===true){ 
    echo "sucessfull"; 
}else echo "unsuccessfull"; 

上記のコードは常にエコーが不成功です。

答えて

3

$ http.post角度でショートカットメソッドを使用すると、以下のようなヘッダを設定することが可能な三つのパラメータ、URL、リクエストデータとconfigオブジェクト取ります

$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}} 
} 
01その後、

と、このように要求します

$http(req).then(function(){...}, function(){...}); 

あなたは一般的なアプリケーションの広いヘッダーを設定したい場合は、以下のように、デフォルトですべての要求に追加されるデフォルトのヘッダーを使用することができます。

$httpProvider.defaults.headers.common['Content-Type'] = 'multipart/form-data'; 

これは、すべての要求に対して上記のコンテンツタイプを追加します。 " - " Content-Typeの中で投げていると、エラードキュメントhere

+0

詳しい情報。予期しないトークン。 – atswann

+0

'Content-Type'を引用符で囲みます。それは動作するはずです。 – superUser

+0

2番目のオプション "$ http(req)"も試してみましたが、PHPサーバには表示されません。私はこれを試してみると(isset($ _ FILES ['articleimg'])=== true){ echo "sucessfull"; } else echo "unsuccessfull"; – atswann

関連する問題