使用Express.js,React和MySQL上传图像文件

时间:2019-02-28 08:23:52

标签: node.js reactjs express

我需要制作一个页面,特定用户(在这种情况下为管理员)可以在其中上传图像,将其保存在mySQL数据库中以及Express的“ uploads”文件夹中。除此之外,我还需要一种稍后显示图像的方法,以便其他用户在登录时可以看到它。NPM上是否有任何有用的软件包可以简化此操作?还是有办法通过香草React和Express做到这一点?

1 个答案:

答案 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