文件下载

Posted 云霄紫潭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件下载相关的知识,希望对你有一定的参考价值。

方式一、

  const url = 下载地址
  window.location.href = url

方式二、

/**
 * @method excel下载
 * @param  String type 需要下载的文件类型
 * @param  Object res  文件流
 * @param  String name 文件名
 * @return NULL 
*/
function createExcel(type,res, name) 
const blob = new Blob([data], 
    // type类型后端返回来的数据中会有,根据自己实际进行修改
    // 表格下载为 application/xlsx,压缩包为 application/zip等,
    type: type
  )
  let fileName = name;
  // 允许用户在客户端上保存文件
  if (window.navigator.msSaveOrOpenBlob) 
    navigator.msSaveBlob(blob, fileName);
   else 
      var blobURL = window.URL.createObjectURL(blob)
    // 创建隐藏<a>标签进行下载
    const tempLink = document.createElement(\'a\')
    tempLink.style.display = \'none\'
    tempLink.href = blobURL
    tempLink.setAttribute(\'download\', fileName)
    if (typeof tempLink.download === \'undefined\') 
      tempLink.setAttribute(\'target\', \'_blank\')
    
    document.body.appendChild(tempLink)
    tempLink.click()
    document.body.removeChild(tempLink)// 移除dom元素
    window.URL.revokeObjectURL(blobURL)// 释放bolb内存
  

文件名获取

let fileName  = ""
if (res.headers["content-disposition"].indexOf("filename=")) 
          if (
            res.headers["content-disposition"].split("=")[1].indexOf("%") > -1
          ) 
            fileName = decodeURI(
              res.headers["content-disposition"].split("=")[1]
            );
           else 
            fileName = res.headers["content-disposition"].split("=")[1];
          
        
     createExcel(res.data, fileName);

Excel Type类型:

  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

  • application/vnd.ms-excel

注意点:

使用方法二,需要在请求头或者请求接口上加:responseType:\'blob\',

Android 逆向Linux 文件分类 ( 普通文件 | 目录文件 | 链接文件 | 字符设备文件 | 管道文件 | 块设备文件 )





一、Linux 文件分类



Linux 文件分类 :

  • " - " 表示 普通文件
  • " d " 表示 目录文件
  • " l " 表示 链接文件
  • " c " 表示 字符设备文件
  • " p " 表示 管道文件
  • " b " 表示 块设备文件

1、普通文件


" - " 表示普通文件 , 既不是目录 , 也不是链接 ;

-rwxr-x--- 1 root shell 1355528 2009-01-01 16:00 charger

2、链接文件


" l " 表示链接文件 , 类似于快捷方式 , 链接文件分为 软链接文件 和 硬链接文件 , 软链接 是 符号链接 , 只包含了一个路径 , 可以链接任意文件目录 或 不存在的文件 , 链接自己也可以 ; 硬链接 只能是 已存在的文件 , 不能是目录 ;

创建软链接 : ln –s filename link_filename
创建硬链接 : ln filename link_filename

lrwxrwxrwx 1 root root 8 1973-11-21 15:32 su -> ./magisk 文件为例 , 该 su 文件不是一个真实存在的文件 , 是一个软链接 , 其真实的文件是 ./magisk , 也就是本目录的 magisk 文件 ;


3、字符设备文件


" c " 表示 " 字符设备文件 " , 如 /dev/ 目录下大部分都是字符设备文件 ;


4、管道文件


" p " 表示 管道文件 ;


5、块设备文件


" b " 表示 " 块设备文件 " , 在 /dev/block/ 目录下基本都是 块设备文件 ;

pci , ram 随机存储内存 , adx 硬盘设备 , loop 伪设备 ( 将文件映射为设备 ) , 一般都是块设备 ;

以上是关于文件下载的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件分类 ( 普通文件 | 目录文件 | 链接文件 | 字符设备文件 | 管道文件 | 块设备文件 )

搞定下载(文件下载,图片下载,截屏下载)

搞定下载(文件下载,图片下载,截屏下载)

java,http下载文件

背水一战 Windows 10 (85) - 文件系统: 获取文件夹和文件, 分组文件夹, 排序过滤文件夹和文件, 搜索文件

scrapy的文件下载问题?