2012-09-15 111 views

回答

5

Node.JS不會自動將上傳的文件保存到磁盤。您將不得不通過requestdataend事件自行讀取並解析multipart/form-data內容。

或者,您可以使用庫這樣做都是爲了你,如connect/expressbodyParsermultipart中間件(complete example):

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

// `bodyParser` includes `multipart` 
app.use(express.bodyParser()); 

app.post('/', function(req, res, next){ 
    // assuming <input type="file" name="upload"> 

    var path = req.files.upload.path; 
    var name = req.files.upload.name; 

    // copy... 
}); 

或者使用formidable直接,這connect的使用multipart中間件(complete example)。

而且,對於// copy...評論,請參閱How to copy a file?

+0

我很困惑...其他地方都說'multipart'不在bodyParser中,但是在這裏它說是嗎? – newman

+0

@miliu我只是沒有更新這個答案。在發佈時(3年前),對''multipart''的支持包含在'bodyParser'中間件中,但之後被移除以支持其他專門處理格式的模塊,例如['multer'](https ://www.npmjs.org/package/multer)([在Express的文檔中提到](http://expressjs.com/4x/api.html#req.body))。自這篇文章以來另一個重大變化是Express不再依賴於Connect。 –

+0

很好。感謝您的更新。 – newman

相關問題