6

約 1 か月の間、expressjs を使用して、ファイルのアップロードの問題に出くわしました。Google やさまざまなブログを参照したにもかかわらず、次の 3 つの質問に対する答えを見つけることができませんでした。

私は何をしなければなりませんか/ bodyParser のどの設定を選択する必要がありますか:

  1. 実際にファイルがアップロードされていることを確認してください (現在、ファイルを選択せず​​にフォームを送信すると、空のファイルが作成されます)。

  2. ファイルに許可される最大サイズの値はどこで指定できますか?

  3. ファイルの名前変更を省略するにはどうすればよいですか?

現在、エクスプレス (v. 3.0.0) アプリに次のオプションを使用して bodyParser を含めています。

{keepExtensions: true, uploadDir: __dirname + '/public/uploads'}
4

2 に答える 2

4

私は最近、同様の問題に遭遇しました。質問 2 については、http://www.senchalabs.org/connect/middleware-limit.htmlを確認してください。

app.use(express.limit('4M')); // in your app.configure()

app.post('/upload', function(req, res) {
    var fs = require('fs'),
        file = req.files.myfile; //your file field;


    if(file.size === 0) { // question #1
        fs.unlinkSync(file.path);
        res.redirect('/error?');
    } else { //question #3
        var fn = file.path.split('/');
        fs.rename(file.path, file.path.replace(fn[fn.length-1], file.name));
        res.redirect('/success?');
    }
});
于 2012-08-04T00:24:39.147 に答える