我正在使用 Multer 上传一些文件,我想知道上传后访问这些文件的推荐方式是什么。
这是我的代码:
server.js
app.use('/', require('./routes'));
routes/index.js
var teacher = require('./teachers.js');
router.post('/upload', teacher.uploadAvatar);
routes/teachers.js
var multer = require('multer');
var upload = multer({ dest: 'uploads/teacher/' }).single('avatar');
uploadAvatar: function(req, res) {
upload(req, res, function(err) {
console.log(req.body);
console.log(req.file);
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
}
访问以下网址localhost:8000/uploads/teacher/uploaded_file_name.png
会出现错误错误:未找到
。
最佳答案
您需要为静态
Assets (包括上传)创建一个public
文件夹。因此,您的文件夹结构将类似于 ./public/uploads/teacher/
。
然后您必须更新 routes/teachers.js
中的以下行:
var upload = multer({ dest: 'uploads/teacher/' }).single('avatar');
至:
var upload = multer({ dest: 'public/uploads/teacher/' }).single('avatar');
并将以下行添加到您的 server.js
中,以从 public
目录提供静态资源:
app.use(express.static('public'));
然后您应该能够访问localhost:8000/uploads/teacher/uploaded_file_name.png
关于javascript - 使用 Multer 上传的文件的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984347/