微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐