在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'); }); }); };