nodejs express 处理上传
在Express中上传文件时不需要依赖其他的模块,文件上传可以很好工作于Express框架内。就像使用req.body一样,现在你可以使用req.files来获得你上传的文件中的具体信息。
如果你不需要指定上传文件的目录,那么你不需要对app.js做任何的改变,文件将默认上传到'/tmp'目录。但是如果你希望对你上传的文件指定特定目录,你仅仅需要修改一下内容:
app.use(express.bodyParser({uploadDir:'./uploads'}));
实验
客户端代码:
<form method="post" enctype="multipart/form-data" action="/upload"> <input type="file" name="myfile"> <input type="submit"> </form>
服务器端代码:
// 移动文件需要使用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'); }); }); };
浙公网安备 33010602011771号