【发布时间】:2018-03-11 18:57:10
【问题描述】:
当我上传我的表单(其中只包含一张图片)时,图片进入根文件夹,但我希望它进入 /public/images。我有一个单独的 routes.js 文件来处理路由。这就是我设置 multer 的方式(在我的 routes.js 文件中)。
var multer = require('multer');
var upload = multer({dest: '/public'});
POST 请求的路由如下所示:
app.post('/upload', isLoggedIn, upload.single('file'), function (req, res) {
var file = __dirname + req.file.filename;
fs.rename(req.file.path, file, function (err) {
if (err) {
console.log(err);
res.send(500);
} else {
res.json({
message: 'File uploaded successfully',
filename: req.file.filename
});
console.log(file);
}
});
});
,表单本身看起来像这样(它是一个 ejs 文件):
<form method="post" action="/upload" enctype="multipart/form-data">
<label for="profilepicture">Profile picture</label>
<input type="file" name="file" accept="image/*">
<input type="submit" value="change profile picture">
</form>
【问题讨论】:
标签: node.js file-upload path fs multer