2017-08-01 7 views
0

ファイルとフィールド(マルチパートフォームタイプ)の両方を持つ強力なフォームアップロードでフォームフィールド値に基づいてファイルアップロードパスを設定する必要があります。ノードformidableフォームのフィールドからディレクトリパスを変更します

theForm.on( 'fileBegin'、関数(名前、ファイル){...} theForm.parse(REQ、関数(errは、フィールド、ファイル){...}の前に呼び出され

しかし、フォームのフィールドが解析される前に、フォームのアップロードパスを設定する必要があると思われますので、まだフィールドのプロパティにアクセスする方法はありません。

これは正しいですか?フォームフィールドが利用可能になった後、ファイルをディスクに保存する前に、フォームのアップロードパスを変更する方法はありますか?

私は現在、2011年7月31日の時点で最新のものを使用しています。

JSONで読み込むためにbody-parserも使用しています。この問題が原因である可能性がありますか? (私はそれを読んだことがありますし、それを使用することも大丈夫です - それを削除すると私にとって他の問題が発生するので、これまではそれを残しました..) const bodyParser = require( 'body-parser'); const jsonParser = bodyParser.json();

多くの感謝!

答えて

0

私はexpress-fileuploadモジュールを使用することをお勧め:

var express = require('express'); 
var app = express(); 
var path = require('path'); 

const fileUpload = require('express-fileupload'); 
app.use(fileUpload()); 

var defaultDir = "C:\\temp"; 
app.post('/upload', function(req, res){ 

    // The name of the input field (i.e. "clientfile") is used to retrieve the uploaded file 
    let sampleFile = req.files.clientfile; 

    var savefile_path = path.join(defaultDir, req.body.path, sampleFile.name); 

    // Use the mv() method to place the file somewhere on your server 
    sampleFile.mv(savefile_path, function(err) { 
     if (err) 
     { 
      return res.status(500).send(err); 
     } 
    }); 
    res.status(200).send("File uploaded"); 
    console.log("File uploaded"); 
}); 
関連する問題