84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
认证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对象传入,用流来把图片复制到你想要的文件夹下