2016-06-20 15 views
0

私が何をしていても、multerを動作させることはできません。私はこの問題に関して見つけ出すことができるすべてを読んできました。そして、例を挙げると、私は自分の能力を最大限引き出しています。Expressとmulterを使用したファイルのアップロード

Here is a JSFiddle link to my work

実際にアップロードしても、ファイルをアップロードすることはできません。私のコードでは、私は

app.post('/submit', function(req, res) { 
    console.log("____ Clicked submit ____"); 
    console.log(req.body); 

    console.dir(req.files); 
}); 

req.body.attachmentに添付ファイル名が表示されます。ただし、req.filesundefinedを返します。

何かすべてのヘルプに感謝します。

答えて

0

multerハンドラをミドルウェアチェーンのどこかで使用する必要があります。

var upload = multer({ 
    dest: './tmp/' 
}); 

ただし、ミドルウェアチェーンでは使用しません。

2つのオプションがあります。 1)グローバルハンドラ(連鎖の頂点に、お勧めできませんを使用しますが) 2)あなたのsubmitルート上でそれを使用する(推奨)

特定の実装のためのdocsを読むが、次の作業が必要です。

// Multer parses single field "attachment" 
app.post('/submit', upload.single('attachment'), function(req, res) { 
    console.log("____ Clicked submit ____"); 
    console.log(req.body); 

    // console.dir(req.files); 
    // for single field use `req.file`, not `req.files` 
    console.log(req.file); 
}); 
+0

私はすでにこれを試していました。私は何かを忘れていることを知っていた - しかし、これはまだ未定義をもたらす。それはおそらく私は非常に底に自分のhtmlで使用するスクリプトと関係がありますか? – Nxt3

+0

絶対に。 XHRでは、マルチパートリクエストを別々に処理する必要があります。これはあなたを助けるかもしれません:http://stackoverflow.com/questions/5392344/sending-multipart-formdata-with-jquery-ajax – Nindaff

+0

私はフォームの提出時にページの再読み込みを停止するために余分なスクリプトを追加していました。サーバー上のフォームを処理しながら、ページの再ロードを停止するにはどうすればよいですか? – Nxt3

関連する問題