0

ミドルウェアとしてexpressjsを使用して、ノードサーバー上に単純なファイルアップローダーを作成することに取り組んでいます。これまでのところ、サーバー側は次のようになっています。

app.post('/upload', function(req, res) {
    console.log(req.files);

    //Handle the file
    fs.readFile(req.files.imageUploader.path, function(err, data) {
        var newPath = __dirname;
        console.log(newPath);
        console.log(data);
        fs.writeFile(newPath, data, function(err) {
            console.log(err);
            res.send("AOK");
        });
    });
});

現在、ログ ステートメント__dirnameはソース ディレクトリ (C:\Development\GitHub\ExpressFileUpload) ですが、アップロードでエラーが発生しています。

{ [Error: EISDIR, open 'C:\Development\GitHub\ExpressFileUpload']
errno: 28,
code: 'EISDIR',
path: 'C:\\Development\\GitHub\\ExpressFileUpload' }

をandに変更しようとしましたnewPathが、変更はありません。別のエラーですが、それでもエラーです。エラーのダブルと関係がありますか?ここで簡単なものが欠けていますか?助けてくれてありがとう。さらに情報が必要な場合はお知らせください。/./\\path

4

1 に答える 1

5

グローバル オブジェクトは__dirnameディレクトリであり、ファイルではありません。したがって、書き込み用に開くことはできません。これはfs.writeFile()、スクリプトで実行しようとするものであるため、EISDIR. ファイルがアップロードされたときと同じ名前で書き込まれると仮定すると、次のようにすることができます。

var file = req.files.imageUploader;
fs.readFile(file.path, function(err, data) {
  var path = __dirname + '/' + file.name;
  fs.writeFile(path, data, function(err) {
  });
});
于 2013-11-04T02:42:11.193 に答える