vue.js接收并下载文件流(blob对象)

  在vue框架中,与传统的根据路径下载文件(document.getElementById("").src=‘’)方式不一样,有时候,咱们会须要将上传的文件在后台直接进行处理再回传到前端,这种状况下文件没有实际的可获取的路径,没法经过连接方式下载。可是能够经过将其转成blob对象,添加到iframe标签中来模拟下载(或者pdf预览)。具体的接收方式以下前端

1.首先设置responseType对象格式为 blob:vue

  responseType:'blob'浏览器

2.获取请求返回的response对象中的blobapp

  var blob=response.body框架

3.建立一个临时的url指向blob对象url

   #URL.createObjectURL()方法会根据传入的参数建立一个指向该参数对象的URL. 这个URL的生命仅存在于它被建立的这个文档里. 新的对象URL指向执行的File对象或者是Blob对象.spa

 var url = window.URL.createObjectURL(blob);
 #设置文件类型,这里以excel为例
blob.type = "application/excel";
 #建立url以后能够模拟对此文件对象的一系列操做,例如:预览、下载
 var a = document.createElement('a');
 a.href = url;
 a.download = 'test.xlsx';
 a.click();
 

4.释放这个临时的对象urlexcel

  window.URL.revokeObjectURL(url);code

  #URL.revokeObjectURL()方法会释放一个经过URL.createObjectURL()建立的对象URL. 当你要已经用过了这个对象URL,而后要让浏览器知道这个URL已经再也不须要指向对应的文件的时候,就须要调用这个方法.对象

相关文章
相关标签/搜索