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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值