file文件转blob格式后下载 ,file文件下载

使用FileReader 对象转换 (该对象用于读取单个文件),接收File对象或Blob对象
base64下载
针对不同类型文件,FileReader使用不同的方法读取

  • readAsBinaryString(Blob| File) :返回二进制字符串
  • readAsText(Blob | File,opt_encoding):返回文本字符串
  • readAsDataURL(Blob | File) : 返回一个基于base64 编码的data-uri 对象
  • readAsArrayBuffer(Blob | File):返回一个ArrayBuffer(数组缓存)对象
  • abort():用于中止文件上传
var reader = new FileReader()
// 传入一个参数对象即可得到基于该参数对象的文本内容
//可用于<img>标签中的src属性,从而达到图片预览的效果
   reader.rederAsDataURL(file); //base64 编码对象
reader.onload= function(e){
	 // 文件里的文本会在这里被打印出来
    console.log(e.target.result)
      var base64 = reader.result; //获取到base4 
      //base64 转化url
       var bstr = atob(base64), //解析 base-64 编码的字符串
        n = bstr.length,
        u8arr = new Uint8Array(n); //创建初始化为0的,包含length个元素的无符号整型数组
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n); //返回字符串第一个字符的 Unicode 编码
      }
      let blob = new Blob([u8arr]); // 这里得到 Blob 
      
      let url = URL.createObjectURL(blob);//这个新的URL 对象表示指定的 File 对象或 Blob 对象
      let a = document.createElement('a') //创建一个a标签
      a.href = url;
      a.download = file.name;
      a.click();
      URL.revokeObjectURL(a.href); //释放之前创建的url对象
}

file 文件下载

let file = new File([data], "fileName.obj");//创建一个file文件
//let blob = new Blob([data]);
let aTag = document.createElement('a');//创建一个a标签
aTag.download = file.name;
let href = URL.createObjectURL(file);//获取url
aTag.href = href;
aTag.click();
URL.revokeObjectURL(href);//释放url

猜你喜欢

转载自blog.csdn.net/weixin_48164217/article/details/118391201