zoukankan      html  css  js  c++  java
  • multer图片上传

     效果图

    const express = require("express")
    const router = express.Router()
    const multer = require("multer")
        // 配置磁盘引擎
    let storage = multer.diskStorage({
            destination: function(req, file, cb) {
                //    指定文件存放路径
                cb(null, "./uploads/images")
            },
            filename: function(req, file, cb) {
                // 指定文件名,先获取扩展,随机生成文件名保存给保存文件的方法
                //获取文件扩展名
                let exts = file.originalname.split(".")
                let ext = exts[exts.length - 1] //为了防止上传图片时,图片的名称中含多个点,从后面取最后一个解决问题
                let tmpname = Date.now() + parseInt(Math.random() * 9999) //时间戳+随机数生成文件名
                cb(null, `${tmpname}.${ext}`)
            }
        })
        // 使用磁盘引擎的配置调用方法
    let upload = multer({ storage: storage })
        // 上传文件路由,使用single 方法接收前端 图片的name属性是'logo'的图片,保存到req.file
    router.post("/upload", upload.single("logo"), (req, res) => {
        // 判断文件是否过大,允许上传的文件类型
        let { size, mimetype, path } = req.file
        let types = ['jpg', 'jpeg', 'png', 'gif']
        let tmpType = mimetype.split("/")[1] //截取到文件类型("mimetype": "image/jpeg"中的jpeg)
        if (size > 1024 * 500) {
            return res.send({ err: -1, msg: "尺寸过大" })
        } else if (types.indexOf(tmpType) == -1) {
            return res.send({ err: -2, msg: "媒体类型错误" })
        } else {
            let savePath = req.file.path // 文件的保存路径(用于存数据库,文件地址用)
                //上传完图片,拼接返回前端图片的查看地址(静态托管的url要设置成这个)
            let imgUrl = `/public/images/${req.file.filename}`
            res.send({ err: 0, msg: "ok", imgUrl })
        }
    })
    module.exports = router
  • 相关阅读:
    Tomcat修改端口号
    如何修改localhost为自己指定的域名
    Tomcat启动时启动窗口中文乱码问题的解决方案
    Java Web 项目jsp页面无法加载样式
    vue 父传子(通过属性传递)
    vue 父传子 讲解
    表白小爱心
    响应式开发
    组件的重复调用
    reduce
  • 原文地址:https://www.cnblogs.com/wjlbk/p/12633318.html
Copyright © 2011-2022 走看看