文件下载

/* eslint-disable */
export const commonDownload = {
  dataURLtoBlob (dataurl) {
    let arr = dataurl.split(',')
    let mime = arr[0].match(/:(.*?);/)[1]
    let bstr = atob(arr[1])
    let n = bstr.length
    let u8arr = new Uint8Array(n)
    while (n--) {
      u8arr[n] = bstr.charCodeAt(n)
    }
    return new Blob([u8arr], { type: mime })
  },
  downloadFile (url, name) {
    let a = document.createElement('a')
    a.setAttribute('href', url)
    a.setAttribute('download', name)
    a.setAttribute('target', '_blank')
    let clickEvent = document.createEvent('MouseEvents')
    clickEvent.initEvent('click', true, true)
    a.dispatchEvent(clickEvent)
  },
  downloadFileByBase64 (base64, name) {
    let myBlob = this.dataURLtoBlob(base64)
    let myUrl = URL.createObjectURL(myBlob)
    this.downloadFile(myUrl, name)
  },
  download (url, filename) {
    const xhr = new XMLHttpRequest()
    xhr.open('GET', url, true)
    xhr.responseType = 'blob'
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            const blob = xhr.response;
            const a = document.createElement('a')
            const link = window.URL.createObjectURL(blob)
            a.href = link
            a.download = filename
            a.click()
            window.URL.revokeObjectURL(link)
        }
    }
    xhr.send()
  }
}


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容