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物件傳入,用流來把圖片複製到你想要的資料夾下