文件上传

form表单上传
1,单文件上传 html

    <form action="/upload" method="post" enctype="multipart/form-data">
      <input type="file" name="myfile" multiple="multiple">
      <button>提交</button>
  </form>

2,多文件上传 html

  <form action="/uploadfiles" method="post" enctype="multipart/form-data">
        <input type="file" name="myfile1" multiple="multiple">
        <button>多文件提交</button>
    </form>

ajax上传

     html:
      <input type="file" id="myajaxFiles" name="ajaxFile">
      <button onclick="ajaxFile()">ajax提交</button>
      js:
       function ajaxFile() {
            var formData = new FormData()
            formData.append("myfile",$("#myajaxFiles")[0].file[0])
            $.ajax({
                url:"/upload",
                type:"post",
                data:formData,
                contentType:false,
                processData:false,
                success(data){
                    $("#myimg")[0].src = data
                }
            })
        }

路由拦截

const express = require("express")
const router = express.Router()
const ctrl = require("../controller/uploadFileCtrl")
const upload = require("../config/Multercig")
router.post("/upload",upload.single("myfile"),ctrl.upload)
router.post("/uploadfiles",upload.array("myfile1",9),ctrl.uploadfiles)
module.exports = router

控制层

module.exports = {
    upload(req,resp){
        // 要获取上传的东西  然后解析

        // 在这里拼接 储存路径

        let str = "upload/"+req.file.filename
        resp.send(str)
    },
    uploadfiles(req,resp){
        let arr = []
        req.files.forEach(item=>{
            var str = "./src/upload"+item.filename
            arr.push(str)
        })
    }
}

配置层

const multer = require("multer")
const storage = multer.diskStorage({
    destination :function (req,file,cb) {
        // 在这里处理文件路径/
        cb(null,"src/upload")
    },
    filename : function (req,file,cb) {
        // 在这里处理文件名
        cb(null,Date.now()+"-"+file.originalname)
    }
})
const upload = multer({storage:storage})
module.exports = upload
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值