resquest.js pipe 数据流下载文件时, 如何自动获取文件后缀名并保存?

在使用request.js进行数据流下载文件时,若无文件后缀名,可在请求响应头中获取MIME类型转换为后缀。通过content-disposition头或检查URL推断文件类型,然后动态添加到保存文件名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原问题: resquest.js pipe 数据流下载文件时, 如何自动获取文件后缀名并保存? 在哪一步加入?

.createWriteStream()之前获取到请求文件的后缀,之后再pipe到数据流中保存。

注意:url中没有文件后缀名。

解决方案:

  const fs = require('fs');
  const request = require('request');
  const url = "someurl"
  const path = "somepath"
  const filename = "somefilename"
  let req = request.get(url).on("response", (response) => {
    type = response.headers["content-type"];
    type = type.substring(type.lastIndexOf("/") + 1);
    req.pipe(fs.createWriteStream(`${path}\\${filename}\\.${type}`));
    req.on("close", (err) => {
      // do something
    });
  });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值