我需要制作一个页面,特定用户(在这种情况下为管理员)可以在其中上传图像,将其保存在mySQL数据库中以及Express的“ uploads”文件夹中。除此之外,我还需要一种稍后显示图像的方法,以便其他用户在登录时可以看到它。NPM上是否有任何有用的软件包可以简化此操作?还是有办法通过香草React和Express做到这一点?
答案 0 :(得分:1)
尝试为Node使用以下软件包-https://www.npmjs.com/package/multer
var multer = require('multer');
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, appRoot+"/Uploads")
},
filename: function (req, file, cb) {
cb(null, commonFunctions.generateAccessToken(90)+'.'+file.originalname.split('.')[1])
}
})
global.upload = multer({storage: storage});
然后在您的路线中添加上传中间件-
router.post("/addPersonalDetail", [upload.single("profile_pic") ], Controllers.serviceController.addPersonalDetail);
在控制器中,单个文件名可通过-
访问data.profile_pic_name = (request.file) ? request.file.filename : "";
可以通过-
访问多个文件request.files[0].filename