【Vue-element-admin】vue前端处理Blob文件流,实现文件下载

后端
class DownLoadResource(BaseView):
  def post(self):
    file_url=self.request.form.get('file_url')
    file_name=file_url.split('/')[-1]
    download_url=config.LOCAL_UPLOAD_PATH=file_name
    return send_file(download_url,as_attachment=True)
前端
request.js

因为后端返回的是二进制流,也没有返回状态码,所以会被拦截,需要在request.js文件对返回的状态码进行处理

if(response.request.responseType ===  'blob' || response.request.responseType ===  'arraybuffer'){
   
      return response.data
 }
downloadFile.vue
<template>
  <div>
    <button @click="handleDownload()">下载文件</button>
  </div>
</template>
<script>
import DownloadResource} from '@/api/upload-file-data'

export default{
   
  methods:{
   
     handleDownload(){
   
       let format=new FormData()
       formData.append('file_url','http://..../xx.pdf')
       DownloadResource(formData).then(response=>{
   
          const objectUrl=window.URL.createObjectUrl(new Blob([response],{
   type:"application/pdf"}))
	      // 创建URL
	      const link = document.createElement('a');
	      link.href=objectUrl;
	      //获取后台传过来的文件名
	      link.setAttribute('download','test');
	      //将链接元素添加到DOM中
	      document.body.appendChild(link);
	      //下载文件
	      link.click();
	      //清理并释放链接元素
	      link.parentNode.removeChild(link);
       })    
     }
  }  
}
</script>
upload-file-data.js
export function DownloadResource(data){
   
  return request({
   
    url:''
    method:'post'
    reponseType:'blob',
    data
  })
}

相关推荐

  1. vue3 blob下载文件

    2023-12-15 17:40:02       39 阅读
  2. 前端实现文件下载

    2023-12-15 17:40:02       30 阅读
  3. blob文件前端显示pdf

    2023-12-15 17:40:02       46 阅读
  4. vue下载文件文档打开只有[object Blob](排错)

    2023-12-15 17:40:02       68 阅读
  5. 前端下载文件

    2023-12-15 17:40:02       31 阅读
  6. vue+Element-ui实现模板文件下载

    2023-12-15 17:40:02       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 17:40:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 17:40:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 17:40:02       87 阅读
  4. Python语言-面向对象

    2023-12-15 17:40:02       96 阅读

热门阅读

  1. 截痕法分析曲面形状@旋转曲面@双曲面@锥面

    2023-12-15 17:40:02       48 阅读
  2. Python 素数回文数的个数(题目来源dotcpp: 2950)

    2023-12-15 17:40:02       59 阅读
  3. Mysql社区版日志审计插件

    2023-12-15 17:40:02       59 阅读
  4. 加索引后 sql loader-951

    2023-12-15 17:40:02       65 阅读
  5. Elasticsearch 8.10之前同义词最佳实践

    2023-12-15 17:40:02       58 阅读