| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- const util = {
- // 创建一个a标签,并做下载点击事件
- downloadFile: function (blob, fileName) {
- if (window.navigator.msSaveOrOpenBlob) {
- // 兼容ie11
- try {
- window.navigator.msSaveOrOpenBlob(blob, fileName)
- } catch (e) {
- console.log(e)
- }
- return
- }
- const link = document.createElement('a')
- link.href = window.URL.createObjectURL(blob)
- link.download = fileName
- // 此写法兼容可火狐浏览器
- document.body.appendChild(link)
- const evt = document.createEvent('MouseEvents')
- evt.initEvent('click', false, false)
- link.dispatchEvent(evt)
- document.body.removeChild(link)
- },
- // 将Base64文件转为 Blob
- buildBlobByByte: function (data) {
- const raw = window.atob(data)
- const rawLength = raw.length
- const uInt8Array = new Uint8Array(rawLength)
- for (let i = 0; i < rawLength; ++i) {
- uInt8Array[i] = raw.charCodeAt(i)
- }
- return new Blob([uInt8Array])
- },
- // 二进制数组 生成文件
- downloadFileByByte: function (data, fileName) {
- const blob = this.buildBlobByByte(data)
- this.downloadFile(blob, fileName)
- }
- }
- export default util
|