nodejs:express file upload demo

这个小demo,是基于nodejs express框架实现文件上传

客服端代码:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
</head>

<body>
  用户:<input type="text" id="user"><br>
  密码:<input type="password" id="pwd"><br>
  文件:<input type="file" id="f1" multiple><br>
  <input type="button" value="提交" id="btn">
</body>
<script>
  window.onload = function () {
    let ouser = document.getElementById('user');
    let opwd = document.getElementById('pwd');
    let obtn = document.getElementById('btn');
    let of1 = document.getElementById('f1');

    obtn.onclick = function () {
      let data = new FormData();
      data.set('user', ouser.value);
      data.set('pwd', opwd.value);
      Array.from(of1.files).forEach(file =>{
        data.append('f1',file);
      })
      /* let arr = [];
      data.forEach((value, key) => {
        arr.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
      }) */

      let OAjax = new XMLHttpRequest();
      OAjax.open('POST', 'http://localhost:3000/aip', true);
      OAjax.send(data);
      OAjax.onreadystatechange = function () {
        if (OAjax.readyState == 4) {
          if (OAjax.status >= 200 && OAjax.status <= 300 || OAjax == 304) {
            alert('成功');
          } else {
            alert('失败');
          }
        }
      }
    }
  }
</script>

</html>

服务器端代码

const express = require('express'); // 主体
const body = require('body-parser');  // 接受普通POST数据
const multer = require('multer');   // 接收文件POST数据

let server = express();


// 中间件
server.use(body.urlencoded({extended: false}));

let multerObj = multer({dest: './upload/'}); // 上传到哪里去
server.use(multerObj.any()); // 任何

server.post('/aip',(req,res)=>{
  res.header('Access-Control-Allow-Origin','*');  // *号允许所有的域名,跨域;不安全
  res.send('ok');
  console.log(req.body);
  console.log(req.files);
});

server.listen(3000);

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值