84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
认证0级讲师
express
form 添加这个:enctype="multipart/form-data"
enctype="multipart/form-data"
input(type="file")
引用
var multiparty = require('connect-multiparty') var multipartMiddleware = multiparty();
路由app.post('/movie/save',multipartMiddleware,Movie.savePoster,Movie.save)
exports.savePoster = function(req, res, next) { var posterData = req.files.uploadPoster var filePath = posterData.path var originalFilename = posterData.originalFilename if (originalFilename) { fs.readFile(filePath, function(err, data) { var timestamp = Date.now() var type = posterData.type.split('/')[1] var poster = timestamp + '.' + type **//将文件保存到特定的目录** var newPath = path.join(__dirname, '../../', '/file/images/' + poster) fs.writeFile(newPath, data, function(err) { // 自定义 req.poster = poster next() }) }) } else { next() } } 最后可以参考:http://www.imooc.com/learn/197中关于上传海报的章节视频,这个是过期的,后面一章有升级的方法
node express 有上传插件,自动解析,你只要提供个目录就可以了很简单
使用formidable来解析上传文图片,简单明了。你在npm上看看这个模块的api就行
express 用 connect-busboy 来处理图片上传的 multipart/* data
multipart/*
这里有示例代码demo
建议用formidable,经过我这几天的实践,formidable的API设计更为合理,便于更多的自定义操作,最重要的是支持多文件上传。connect-busboy没有上述的优点,而且不支持multipart
app.post('/ava',multipart(),function(req, res){ var filename = req.files.avatar.originalFilename || path.basename(req.files.avatar.path); var targetPath = pathname + '/image_repository/avatar/' + filename; fs.createReadStream(req.files.avatar.path).pipe(fs.createWriteStream(targetPath)); var _url = '/avatar/' + filename; console.log(_url); console.log(targetPath); var _name = req.session.user; //用module方法保存数据 User.update({name:_name},{$set:{avatar:_url}},function(err){ if (err) throw err; }); res.json({ codetype : 200, msg:{url:'http://' + req.headers.host + '/' + filename}, url:_url }); //用entity方法保存数据,效果相同 //User.findOne({name:_name},function(err, doc){ // if (err) throw err; // if (doc){ // doc.set({avatar:targetPath}); // doc.save(); // }else{ // console.log('no user'); // } //}); //res.json({ // codetype : 200, // msg:{url:'http://' + req.headers.host + '/' + filename}, // url:_url //}); //var _img = req.files; // console.log(_img); //res.json(_img); });
图片从前端用formdata对象传入,用流来把图片复制到你想要的文件夹下
express
form 添加这个:
enctype="multipart/form-data"
引用
路由
app.post('/movie/save',multipartMiddleware,Movie.savePoster,Movie.save)
node express 有上传插件,自动解析,你只要提供个目录就可以了很简单
使用formidable来解析上传文图片,简单明了。你在npm上看看这个模块的api就行
express 用 connect-busboy 来处理图片上传的
multipart/*
data这里有示例代码demo
建议用formidable,经过我这几天的实践,formidable的API设计更为合理,便于更多的自定义操作,最重要的是支持多文件上传。
connect-busboy没有上述的优点,而且不支持multipart
图片从前端用formdata对象传入,用流来把图片复制到你想要的文件夹下