multer上传文件—单复数文件问题

 单文件上传时:

<input type="file" name='myfiles>
var formdata = new FormData();
console.log(event.target.files);
var file = event.target.files[0];//这里注意,event.target.files是多数组。所以单个文件上传要[0]
formdata.append("myfiles",file);
router.post('/',arr,function (req, res, next) {
  console.log(req.file);//注意,这里是file,复数文件上传用files
  res.send(req.file);
})

复数文件上传时:

<input type="file" name="myfiles" value="" multiple>
var formdata = new FormData();
console.log(event.target.files);
for(let file of event.target.files){//读取event.target.files中的值放入formdata中
  formdata.append("myfiles",file);
}
​router.post('/',arr,function (req, res, next) {
  // console.log(req.file);
  // res.send(req.file);
  console.log(req.files);//注意,复数文件使用files
  res.send(req.files);
})
​

全部代码:

ejs代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>

    <form class="" action="/lesson15" method="post" enctype="multipart/form-data">
      <!-- <input type="file" name='myfiles> -->
      <input type="file" name="myfiles" value="" multiple>
      <input type="submit" name="" value="上传文件">
    </form>

    <script type="text/javascript">
      const input = document.querySelector("input");
      // input.onchange = function
      input.addEventListener("change",function (event) {
        var formdata = new FormData();
        console.log(event.target.files);
        for(let file of event.target.files){
        formdata.append("myfiles",file);
        // var file = event.target.files[0];
        // formdata.append("myfiles",file);
        console.log(formdata);
        };
        upload(formdata);
      });

      function upload(formdata){
        const xhr = new XMLHttpRequest();
        xhr.open("POST","/lesson15");
        xhr.onreadystatechange = function () {
          if(xhr.status == 200 && xhr.readyState == 4){
            console.log(xhr.response);
          }
        }
        xhr.send(formdata);
      }
    </script>

  </body>
</html>

js路由页代码

var express = require('express');
var router = express.Router();
const multer = require("multer");
const upload = multer({
  dest:"upload"
});

const arr = upload.array("myfiles",3);
const single = upload.single("myfiles");

router.get('/',arr,function (req, res, next) {
  res.render('15');
});

router.post('/',arr,function (req, res, next) {
  // console.log(req.file);
  // res.send(req.file);
  console.log(req.files);
  res.send(req.files);
})

module.exports = router;

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值