Nodejs学习笔记(5+)文件上传基础 demo (不包括数据库操作)

index.html

<!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>文件</title>
</head>
<body>
  <form action="/journal/receive_file" method="POST" enctype="multipart/form-data">
    <input type="file" name="files" value="选择文件"><br>
    <input type="submit" value="提交">
  </form>
</body>
</html>

server.js

const express = require('express');
const fs = require('fs');
const app = express();

// 文件缓存目录
const multer = require('multer');
const upload = multer({
  dest: 'D:/rswork/upload/tmp/'
});

// 连接池集群,管理多个连接
const poolCluster = mysql.createPoolCluster();
poolCluster.add('rsjournal', models.mysql_rsjournal); // 连接数据库,此处不完整

// 接收文件
app.post('/receive_file',upload.array('files'), (req, res) => {
  if (!req.files[0]) {
    res.send('文件传输错误')
  }
  var des_file = "D:/rswork/upload/" + req.files[0].fieldname + "/" + req.files[0].originalname

  fs.readFile(req.files[0].path, function (error, data) {
    if (error) {
      return console.error(error)
    }
    // console.log('writeFile前面');
    fs.writeFile(des_file, data, function (err) {
      if (err) {
        // 接收失败
        res.send('文件传输错误')
        return console.error(err)
      } else {
        // 接收成功
        res.send('成功!')
        // 删除缓存文件
        fs.unlink(req.files[0].path, function (err) {
          if (err) {
            return console.error(err)
          }
        })
      }
    })
  })  
})

const server = app.listen(3333, '0.0.0.0', () => {
  console.log('实例访问地址: %s:%d',
    server.address().address,
    server.address().port);
});
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页