我是NodeJS的新手,我正在使用express、ejs和Multer(处理多部分/表单数据)开发一个项目,以便上传一张图片(单个>>个人资料图片)。我一直试图在一个视图中显示上传的文件(图像),但没有成功。我有关于上传文件(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>
有人能帮帮我吗。
问候你,多娜
所以这里是解决办法,它对我起作用了!
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
});
});
问候你,多娜