express文件上传

express文件上传

使用multer

1、 在项目中下载multer操作模块
Npm install multer --save
前端代码:

注意只要是上传文件请设置form enctype属性为:multipart/form-data 设置完即可 服务器代码 1、 引入multer模块 Var multer = require(“multer”); 2、 引入fs模块用于更改上传文件的名称 3、 设置上传文件保存路径 //配置上传文件的保存路径 放到public下upload目录中方便前端代码访问 upload文件如果不存在会自动创建 var upload = multer({ dest: 'public/upload/' }); 单文件上传: 使用single(filename) Router.post(“/router”,multer.single(filename),function(req,res,next){ Res.send(“上传成功”) }) 注意:这个时候上传的文件没有后缀名需要自己编写代码处理 处理后缀名:使用fs模块中的 //得到文件信息 var file = req.file; console.log(file); //修改文件名称 fs.renameSync(file.path,"public/upload/"+file.originalname); res.send("上传成功"); 处理文件随机名称使用时间戳与随机数进行处理 router.post('/add',upload.single('img'), (req, res) => { //得到文件信息 var file = req.file; console.log(file); var filename = "public/upload/"; if(file.mimetype == "image/jpeg"){ filename+=new Date().getTime()+(Math.round(Math.random()*10000))+".jpg"; }else if(file.mimetype == "image/png"){ filename+=new Date().getTime()+(Math.round(Math.random()*10000))+".png"; }else{ res.send("上传文件格式不支持请上传png与jpg图片"); } fs.renameSync(file.path,filename); res.send("上传成功"); }); 最后把图片路径信息与其他信息保存到数据库中 //files为提交过来的表单中file组件的name属性值 router.post('/add',upload.single('img'), (req, res) => { //得到文件信息 var file = req.file; var filename = "upload/"; if(file.mimetype == "image/jpeg"){ filename+=new Date().getTime()+(Math.round(Math.random()*10000))+".jpg"; }else if(file.mimetype == "image/png"){ filename+=new Date().getTime()+(Math.round(Math.random()*10000))+".png"; }else{ res.send("上传文件格式不支持请上传png与jpg图片"); } fs.renameSync(file.path,"public/"+filename);
 var sql = `INSERT INTO stuinfo (stuname, stuicon, stusex, stuage, stutel,stuaddress) VALUES ('${req.body.username}', '${filename}', '${req.body.sex}', '${req.body.age}', '${req.body.tel}', '${req.body.address}')`;

 mdb(sql,function(err,result){
     res.send("添加信息成功")
 })

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值