码迷,mamicode.com
首页 > 其他好文 > 详细

前端下载后台传入的pdf base64格式的文件

时间:2020-07-01 13:03:35      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:adf   events   mat   targe   code   col   img   new   creat   


1、下载文件封装downloadFile.js

// 图片转blob
function imgURLtoBlob(dataurl) {
  const arr = dataurl.split(‘,‘)
  const mime = arr[0].match(/:(.*?);/)[1]
  const bstr = atob(arr[1])
  let n = bstr.length
  const u8arr = new Uint8Array(n)
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n)
  }
  return new Blob([u8arr], { type: mime })
}

// pdf转blob
function pdfBase64ToBlob(dataUrl) {
  var bstr = atob(dataUrl)
  var n = bstr.length
  var u8arr = new Uint8Array(n)
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n)
  }
  return new Blob([u8arr], { type: ‘pdf‘ })
}

function downloadFile(url, name) {
  const a = document.createElement(‘a‘)
  a.setAttribute(‘href‘, url)
  const fileName = name + ‘.pdf‘
  a.setAttribute(‘download‘, fileName)
  a.setAttribute(‘target‘, ‘_blank‘)
  const clickEvent = document.createEvent(‘MouseEvents‘)
  clickEvent.initEvent(‘click‘, true, true)
  a.dispatchEvent(clickEvent)
}

export function downloadFileByBase64(url, name) {
  if (url) {
    const myBlob = pdfBase64ToBlob(url) // pdf就调用该方法,图片调用imgURLtoBlob()
const myUrl = URL.createObjectURL(myBlob) downloadFile(myUrl, name) } else { alert(‘文件不存在‘) } }

2、引用

import { downloadFileByBase64 } from ‘@/utils/downloadFile‘

downloadFileByBase64(后端传的base64流, 文件名)

 

前端下载后台传入的pdf base64格式的文件

标签:adf   events   mat   targe   code   col   img   new   creat   

原文地址:https://www.cnblogs.com/banyouxia/p/13218381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!