js常用下载的几种方式

5 篇文章 0 订阅
4 篇文章 0 订阅

1. 文件为链接的时候

网上大多数是叫你使用a链接,初学者很多时候很懵,点击下载的时候直接就打开文件的链接了,根本没办法下载
a链接没错,通常需要处理一下,直接上代码

  const a_link = document.createElement("a");  // 生成一个a链接
  fetch(link)    // 括号里是文件链接
    .then((res) => res.blob())
     .then((blob) => {
          // 将链接地址字符内容转变成blob地址
       a_link.href = URL.createObjectURL(blob);
       console.log(a_link.href);
       a_link.download = name; //下载的文件的名字
       document.body.appendChild(a_link);
       a_link.click();
   });

注意:这样下载的文件要求文件链接遵循同源策略,也就是说,文件路径如果跨域会下载失败

2.文件不为链接,通过接口传参

	  axios  
        .get(`/common/File/Download?id=${id}`, {
          responseType: "blob",
        })
        .then((res) => {
          let url = URL.createObjectURL(res.data);
          var a = document.createElement("a");
          a.href = url; // 给a标签赋上下载地址
          a.download = `${name}`;
          a.style.display = "none"; // 让a标签不显示
          a.click(); // a标签自点击
          URL.revokeObjectURL(a.href);
        })
        .catch((_) => {});
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 中循环数组的方式有以下几种: 1. for 循环 使用 for 循环可以遍历数组中的每个元素。可以通过数组的 length 属性确定循环次数。例如: ``` var arr = [1, 2, 3]; for (var i = 0; i < arr.length; i++) { console.log(arr[i]); } ``` 2. forEach 方法 可以使用 forEach 方法来遍历数组中的每个元素。它接受一个回调函数作为参数,回调函数的参数分别为当前遍历的元素、当前遍历的索引、原始数组。例如: ``` var arr = [1, 2, 3]; arr.forEach(function(item, index, array) { console.log(item); }); ``` 3. for...in 循环 使用 for...in 循环可以遍历数组中的每个属性。它返回的是属性名,需要通过属性名获取对应的属性值。例如: ``` var arr = [1, 2, 3]; for (var index in arr) { console.log(arr[index]); } ``` 需要注意的是,使用 for...in 循环遍历数组时,可能会遍历到一些非数字类型的属性,例如数组方法、原型链上的属性等,所以需要通过 hasOwnProperty 方法来判断属性是否为对象自身的属性。例如: ``` var arr = [1, 2, 3]; for (var index in arr) { if (arr.hasOwnProperty(index)) { console.log(arr[index]); } } ``` 4. for...of 循环 使用 for...of 循环可以遍历数组中的每个元素。它返回的是元素值,而不是索引或属性名。例如: ``` var arr = [1, 2, 3]; for (var item of arr) { console.log(item); } ``` 以上是 JavaScript常用几种循环数组的方式,根据不同的需求选择合适的方式可以使代码更加简洁、易读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值