【发布时间】:2019-02-11 20:01:28
【问题描述】:
我正在使用 Multer 上传个人资料图片,但很遗憾无法正常工作。这是我的代码:
var express = require("express");
var multer = require('multer');
var app = express();
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './public/uploads');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now());
}
});
var upload = multer({ storage : storage}).single('avatar');
exports.uploadAvatar = function(req, res) {
console.log(req.files);
upload(req,res,function(err) {
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
};
还有路线:
app.post('/api/uploadAvatar', requiredAuthentication, routes.api.instructor.uploadAvatar);
这是我的表格:
<form method="post" id="editProfile" enctype="multipart/form-data" action="/api/uploadAvatar">
<div class="form-group">
<label>Profile image <span>*</span></label>
<input type="file" name="avatar" class="form-control" id="avatar" required />
</div>
<div class="form-actions">
<button type="submit" class="button" id="btnSubmit">Upload</button>
</div>
</form>
这是console.log(req.files); 正在记录的内容:
如您所见,destination 以“Temp”文件夹为目标,并且未生成文件名。有人可以找出这里出了什么问题吗?
请注意,我使用的是 keystoneJS 框架,但我相信它不会对此产生任何影响。
【问题讨论】:
-
你使用的是什么版本的 KeystoneJS 和 Multer?
-
@Stennie KeystoneJS - 4, NodeJS - 10.5, Multer - 1.3
标签: node.js multer keystonejs