在Express中上傳文件時不須要依賴其餘的模塊,文件上傳能夠很好工做於Express框架內。就像使用req.body同樣,如今你能夠使用req.files來得到你上傳的文件中的具體信息。express
若是你不須要指定上傳文件的目錄,那麼你不須要對app.js作任何的改變,文件將默認上傳到'/tmp'目錄。可是若是你但願對你上傳的文件指定特定目錄,你僅僅須要修改一下內容:服務器
app.use(express.bodyParser({uploadDir:'./uploads'}));
實驗app
客戶端代碼:框架
<form method="post" enctype="multipart/form-data" action="/upload"> <input type="file" name="myfile"> <input type="submit"> </form>
服務器端代碼:post
// 移動文件須要使用fs模塊 var fs = require('fs'); app.post('/upload', function(req, res) { // 得到文件的臨時路徑 var tmp_path = req.files.myfile.path; // 指定文件上傳後的目錄 - 示例爲"images"目錄。 var target_path = './public/images/' + req.files.myfile.name; // 移動文件 fs.rename(tmp_path, target_path, function(err) { if (err) throw err; // 刪除臨時文件夾文件, fs.unlink(tmp_path, function() { if (err) throw err; res.send('File uploaded to: ' + target_path + ' - ' + req.files.myfile.size + ' bytes'); }); }); };