我是NodeJS的新手,我正在研究使用express,ejs和Multer(处理multipart / form-data)的projet以上传图片(单个>>个人资料图片)。 我一直在尝试在视图中显示上传的文件(图像) 没有成功。 我有关于上传文件(req.file)的所有信息,但我无法做任何事情。
//route.js
app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){
res.render('image', {
path: req.file.path
});
});
//image.ejs
<section id="upload">
<img class="uploaded-image" src="<%= path %>" alt="Image name: <%= path %>"/>
</section>
请有人帮帮我。
祝你好运, 多纳
答案 0 :(得分:1)
所以这是解决方案,它对我有用!
var storage = multer.diskStorage({
destination: function(req, file, cb){
cb(null, path.join(__dirname, PICTURE_FOLDER));
},
filename: function(req, file, cb){
var filename = Date.now();
switch (file.mimetype) {
case 'image/png':
filename = filename + ".png";
break;
case 'image/jpeg':
filename = filename + ".jpeg";
break;
default:
break;
}
cb(null, filename);
}
});
var upload = multer({ storage: storage});
app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){
res.render('image', {
path: req.file.path
});
});
祝你好运, 多纳