node学习之 ---- 通过第三方库multiparty处理上传的数据和文件

1.页面部分

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <!-- 上传文件的话一定要加第三个属性,不然拿不到文件 -->
  <form action="http://localhost:8080/upload" method="POST" enctype="multipart/form-data">
    用户名:<input type="text" name="username" /><br/>
    密码:<input type="password" name="psw" /> <br/>
    <input type="file" name="file1">
    <input type="submit" value="提交">
  </form>
</body>
</html>

2.multiparty的使用

const http = require("http");
// 安装后引入第三方库
const multiparty = require("multiparty");

http.createServer((req, res) => {
  // 当请求的路径是 /upload 时
  if (req.url == "/upload") { 
    let form = new multiparty.Form({
      uploadDir: "./upload"
    });
    form.parse(req);
  
    // 普通的数据
    form.on("field", (name, value) => {
      console.log("普通字段信息", name, value);
    });
  
    // 文件数据
    form.on("file", (name, value) => {
      console.log("文件", name, value);
    });
  
    // 所有数据全部接收完成
    form.on("close", () => {
      res.setHeader('content-type', 'text/plain'); // 头部信息:状态码,文本类型
      res.end("ok"); // 解析完毕可以发一个数据到客户端
      console.log("完毕");
    });
  
    // 有错的时候
    form.on("error", (err) => {
      console.log(123);
      console.log(err);
    });
  }
}).listen(8080);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值