簡體   English   中英

使用GridFS和multer時如何檢索配置文件圖像

[英]How can I retrieve profile images when using GridFS and multer

我正在構建的應用程序的功能之一允許用戶上傳個人資料圖片,例如在Facebook,Twitter和quora上。

似乎multer用於處理從表單上傳的信息,並且應該使用GRidFS存儲在文件存儲系統中。 我已經完成了文件上傳部分。

我如何存儲圖像,以便用戶可以訪問它們?

 var upload = multer({ dest: 'uploads/' }); // image upload route app.post('/photos/upload',upload.single('avatar'), function(req, res) { console.log(req.user.img); console.log(req.file); var user = req.user; user.img = req.file; user.save(function(err) { res.redirect('/profile'); }); 

我無需使用GridF就能解決此問題。 剛剛使用multer上載到上載文件夾,並為每個上載圖像的用戶將文件的路徑保存在mongo集合中。

 var storage = multer.diskStorage({ destination: function (req, file, cb){ cb(null, 'public/uploads') }, filename: function (req, file, cb) { cb(null, file.originalname + '-' +Date.now()) } }); var upload = multer({ storage: storage }).single('avatar'); // to post the path to the database. app.post('/photos/upload', function(req, res) { upload(req, res, function(err) { if (err) { res.redirect('/profile') return res.send("Error uploading file"); } else if (req.file == null) { res.redirect('/profile') } else { if ((facebook != null) && (local != null)) { User.findOne({ 'facebook.email': facebook }, function(err, user) { if (err) { return done(err); } console.log(user) user.img = req.file.path user.save(function(err) { if (err) { throw err; } }); }); } else if ((facebook != null) && (local == null)) { User.findOne({ 'facebook.email': facebook }, function(err, user) { if (err) { return done(err); } console.log(user) user.img = req.file.path user.save(function(err) { if (err) { throw err; } }); }); } else if ((facebook == null) && (local != null)) { User.findOne({ 'local.email': local }, function(err, user) { if (err) { return done(err); } console.log(user) user.img = req.file.path user.save(function(err) { if (err) { throw err; } }); }); } } }) res.redirect('/profile'); }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM