4

Angular-file-uploadを使用して、次のようにしてファイルを API にアップロードしています。

var upload = function (file) {
    return $upload.upload({
        url: '/api/place/logo',
        data: {place_id: 1, token: <some_token>},
        file: file
    });
};

すべてのパラメータが正しく設定されているようです。API は、token認証のために が存在することを想定しています。何らかの理由で、API はクライアントから投稿されたtokenまたはを受信せずplace_id、常にBadRequest.

ここでの問題は何ですか?

4

5 に答える 5

1

ベアラートークンを使用していますか? 私はhttps://github.com/nervgh/angular-file-uploadを使用していて、同様の問題に遭遇しました。ファイルの投稿が $http ではなく AJAX を使用して行われていたことが判明したため、認証インターセプター サービス (これは私のAngular Webサイトからのすべての発信トラフィックにトークンを挿入するはずでした)は機能しませんでした.

ライブラリの動作方法によっては、同様の問題が発生している可能性があります。その場合、トークンを「Authorization」ヘッダーとして指定する必要があります (トークン プロバイダーによって以前に承認された後、localStorage から authData を取得しています):

tokenHeader = 'Bearer ' + authData.token;
var uploader = $scope.uploader = new FileUploader({
    headers: { "Authorization": tokenHeader },
    url: _uploadUrl,
    withCredentials: true
 });
于 2015-04-27T19:30:51.580 に答える
0

私はこれが好きです:

var tokenHeader = $http.defaults.headers.common.Authorization;

var uploader = $scope.uploader = new FileUploader({
    url: '/api/WS_Books/PostBooks',
    autoUpload: true,
    headers: { "Authorization": tokenHeader },
    withCredentials: true
});
于 2015-09-28T11:12:26.990 に答える
0

これは私にとってはうまくいきました。私はPHPを使用しています

formData プロパティを使用して PHP に値を送信できます

app.controller ('FileUploadCtrl', ['$ scope', 'FileUploader', 
function ($ scope, FileUploader) {
var uploader = $ scope.uploader = new FileUploader ({
    url: '.myapi / mycontrollers / myuploadfile.php',
    formData: [{
             data1: 'value1',
             data2: 'value2',
             dataN: 'valueN'
           }]
});

PHP では、$ _REQUEST を使用して、formData で利用可能な情報をキャプチャします。

$myValue1 = $_REQUEST ['data1'];
$myValue2 = $_REQUEST ['data2'];
$myValue3 = $_REQUEST ['dataN'];
于 2018-04-25T14:36:16.550 に答える