使用multer写一个上传图片

multer(node中间件)

下载:链接(https://www.npmjs.com/package/multer
npm i multer
创建一个upload.js文件,内容为下:

const multer  = require('multer')
// 自定义上传目录 文件名
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './public/uploads')   //  上传的文件目录(文件上传以后放在哪里)
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now()+path.extname(file.originalname))  //  上传的文件名字 (文件名+‘-’+时间戳+源文件的后缀名【例如:jpg/png......】)
  }
})

const upload = multer({ storage: storage })
//  导出:
module.exports = upload   导出使用

文件上传路由:
定义一个上传路由/upload

router.post('/upload',upload.single('file'), (req, res) => {   //  'file'和标签的name属性值一样!
  res.send({
    code: 0,
    msg:'上传成功',
    data: '/static/uploads/'+req.file.filename // 上传成功的服务器的地址 (上文中文件所在地址)
  })
})

前端ajax请求上传文件:

// 将上传的文件存入formData中
formData.append('file', $('#file')[0].files[0]);
$.ajax({
          url: '/upload',
          type: 'post',
          processData: false, //必须 缓存关了
          contentType: false, //必须 关闭 设置 数据格式(以 数据本身格式为准 xxxxx urlencoded)
          data: formData,
          success: function(res){
          console.log(res);
          if(res.code === 0) {
              alert(res.msg);
              $('#img').attr('src', res.data)  //  将后端返回的【上传成功的服务器的地址 (上文中文件所在地址)】设置给img的src属性,这样上传的时候有一个预览的效果
            }
          }
        })
微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

chenyou123_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值