js 下载网络文件到本地,根据url下载文件,下载本地文件

本文介绍了如何使用JavaScript从URL下载文件到本地,避免使用a标签带来的浏览器兼容性问题。提供了一种自动生成随机文件名的方法,以防止重复下载导致的提示问题。对于需要在页面上多次导出文件的场景尤其适用。

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

js下载网络文件到本地不建议使用a标签打开网页,不同浏览器会不兼容。下面介绍一个可以根据url下载文件到本地,并且自动生成随机名称的方法~

随机生成名称可以在统一页面多次导出文件且不会提示“文件已存”的情况,不需要的同学可以根据注释修改

// 文件下载,url为文件地址,可以为本地地址也可以为网络地址

function downloadFile(url) {
//   不需要随机生成名字的
//   let filename = `你的文件名字.文件格式`;

  // 生成一个随机名称
  let filename = `${randomString(10)}.xls`;
  return fetch(url).then((res) =>
    res.blob().then((blob) => {
      let a = document.createElement("a");
      let url = window.URL.createObjectURL(blob);
      a.href = url;
      a.download = filename;
      a.click();
      window.URL.revokeObjectURL(url);
    })
  );
}

// 随机字符串
function randomString(len) {
  console.log(2);
  len = len || 32;
  var $chars =
    "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678"; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
  var maxPos = $chars.length;
  var pwd = "";
  for (let i = 0; i < len; i++) {
    pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
  }
  return pwd;
}

随机生成数字参考:https://www.cnblogs.com/hermitks/p/10979221.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值