file file converted to blob format and then downloaded, file file download

Use FileReader object conversion (this object is used to read a single file), receive File object or Blob object
base64 download
For different types of files, FileReader uses different methods to read

  • readAsBinaryString(Blob| File) : returns a binary string
  • readAsText(Blob | File, opt_encoding): returns a text string
  • readAsDataURL(Blob | File) : returns a base64-encoded data-uri object
  • readAsArrayBuffer(Blob | File): returns an ArrayBuffer (array buffer) object
  • abort(): used to abort file upload
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 file download

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

Guess you like

Origin blog.csdn.net/weixin_48164217/article/details/118391201