vue 文件流下载
/**
* 文件转为文件流
* @param {file} file //文件
*/
export function getFileBlob(file) {
var dataUrl
var reader = new FileReader()
reader.readAsDataURL(file) // 读取文件内容,读取完成,result属性中将包含一个data: URL格式的字符串以表示所读取文件的内容。
// fr.readAsBinaryString(file) 读取文件内容,读取完成,result属性中将包含所读取文件的原始二进制数据。
// fr.readAsText(file) 读取文件内容,读取完成,result属性中将包含一个字符串以表示所读取的文件内容。
// fr.readAsArrayBuffer(file) 读取文件内容,读取完成,result 属性中保存的将是被读取文件的 ArrayBuffer 数据对象.
reader.onload = function () { // 文件读取成功回调
dataUrl = reader.result // result属性为data:URL格式,与读取方式有关
// 返回地址url
// return dataUrl
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
// var blobFile = new Blob([dataUrl])
const blobFile = new Blob([file])
const fileName = file.name
window.navigator.msSaveOrOpenBlob(blobFile, fileName)
} else {
const elink = document.createElement('a')
elink.download = file.name
elink.style.display = 'none'
elink.href = dataUrl
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
}
}
}
本文出自于 转载请注明出处,否则会追究。