web前端:blob - 二进制文件流下载

    作者:下落香樟树更新于: 2020-09-10 20:59:29

    Web开发

      二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。

      blob-二进制文件流下载

      /**

      *返回值文件类型为blob二进制流文件

      *responseType:'blob'

      *params接口所需参数

      *命名文件名:依据时间戳命名文件名

      *(导出时需要延迟,否则导出文件失败,默认文件名时直接导出)

      **/

      $axiOS.get(`api`,{

      responseType:'blob',

      params

      }).then((res)=>{

      //response的返回值为二进制文件流

      //创建时间戳

      letdate=newDate(),

      yyyy=date.getFullYear(),

      MM=date.getMonth()+1,

      dd=date.getDate(),

      hh=date.getHours(),

      mm=date.getMinutes(),

      ss=date.getSeconds();

      vartimeStr=`${yyyy}${MM}${dd}${hh}${mm}${ss}`;

      //导出二进制文件

      setTimeout(()=>{

      //创建URL对象URL.createObjectURL(object)

      leturl=window.URL.createObjectURL(res.data);

      letlink=document.createElement('a');

      link.style.display='none';

      link.href=url;

      //指定文件名&文件类型(后缀名)

      letfileName=`Users${timeStr}CN.xls`;

      /**

      *添加属性,并赋指定的值el.setAttribute('download','zzz')

      *demo:

      *download属性的值即使当前要导出的文件的文件名

      **/

      link.setAttribute('download',fileName);

      link.click();

      //释放创建的对象(创建的新的URL必须通过该方法释放)

      window.URL.revokeObjectURL(url);

      },500);

      }).catch((err)=>{

      console.log('文件导出失败:',err);

      });

      当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用1来表示“开”,0来表示“关”。

课课家教育

未登录