2

ファイル アップロードを Angular ng-File-Upload モジュールと Node.js サーバーで動作させるのに問題があります。例では、「file」または「files」属性 (req.file または req.files) を介して、クライアント要求で発生したファイルにアクセスできる必要があると述べています。ただし、要求時のそのような属性は「未定義」です。クライアント要求にファイルの痕跡が見つかりません。

私のクライアント側のコードは次のようになります。

$scope.addFiles = function(files){
        console.log(files);
        $scope.information.files = files;
            Upload.upload({
                url: 'http://www.uploadURL.com/uploadFiles',
                file: files
            }).progress(function(evt){
                console.log('progress: ' + parseInt(100.0 * evt.loaded / evt.total) + '% file :'+ evt.config.file.name);
            }).success(function(data, status){
                console.log('data '+ data);
                console.log('status '+status);
            }).error(function(data, status){
                console.log('bad data '+ data);
                console.log('bad status '+ data);
            });
        }
    };

アップロード用の HTML の行は次のようになります。

<button class="btn btn-primary btn-lg btn-block uploadButton" type="file" ngf-select="addFiles($files)" multiple accept="*"> Select Files</button>

サーバー側は現在、次のようになっています。

app.post('/uploadFiles', function(req, res){
        var tempfiles = [];
        console.log(req.file);
        console.log(req.files);
});

上記のコンソール ログはどちらも「未定義」を返します。これを修正する方法/ファイルをアップロードするためのより良い方法について誰かが考えているなら、私は非常に感謝しています.

4

1 に答える 1

2

投稿データはリクエストの本文にあり、投稿データを解析してリクエストのフィールドとして設定するには、body-parser ミドルウェアが必要です。これをチェックしてください

于 2015-09-14T19:08:15.323 に答える