Express 04 文件的上传和下载

npm install multer

在文件中 引进来

const multer = require("multer");

然后实例化

//上传了之后会临时放在这个目录  ps:  自己创 

const upload = multer({

  dest: "./public/upload/temp",

});

//所有接口都允许有上传功能

app.use(upload.any());

 路由文件 写下面的  

要引进fs

const fs = require("fs");

router.post("/upload",(req,res) => {

  //检测是否有文件

  if (!req.files) {

    res.send({

      code: 400,

      msg: "上传文件不能为空",

    });

    return;

  }

  //保存文件

  let files = req.files;

  let ret_files = [];

  for (let file of files) {

    //获取名字后缀

    let file_ext = file.originalname.substring(

      file.originalname.lastIndexOf(".") + 1

    );

    //使用时间戳作为文件名字

    let file_name = new Date().getTime() + "." + file_ext;

    // 移动文件并且修改文件名字

    fs.renameSync(

      process.cwd() + "/public/upload/temp/" + file.filename,

      process.cwd() + "/public/upload/" + file_name

    );

    ret_files.push("/public/upload/" + file_name);

  }

  res.send({

    code: 200,

    msg: "ok",

    data: ret_files,

  });

});

 

 下载

//下载文件 一般用get

router.get("/download",async (req,res) => {

  let file_name = req.query.file_name;

  let file_path = process.cwd() + "/public/upload/" + file_name;

  res.download(file_path);

});

运行之后 去游览器 

输入网址 

localhost:8000/test/download?file_name=文件名.jpg

相关文章

根据官网 入门 express
java叫接口control什么的app.get.post等等都是请求方式我们可...
为了前端丢进去的时候可以直接判断中间件就是经过了这个就会...
Express 文件的上传和下载
运行命令下载app.js 增加中间件。
基本模板来的 后面用后就有什么加什么都行。