浏览器下载本地数据
場景:已經(jīng)拿到了數(shù)據(jù),非直接下載,示例為下載csv文件
ie和非ie下載不同
ie下載:
// 當執(zhí)行如下代碼,會生產(chǎn)“文件名字.csv"的文件,csv跟excel是一樣的。
let data = new Blob(['a, b, c, aa, bb, cc'], {type: 'text/csv'}) // Blob轉換為二進制數(shù)據(jù),類型為text/csv 第一個參數(shù) 為換行,逗號為換列。 navigator.msSaveBlob(data, '文件名字.csv')
非ie
方式一:
let a = document.createElement('a') // 創(chuàng)建a標簽 a.download = '文件名字.csv' // 下載后文件名字 let data = new Blob(['a, b, c, aa, bb, cc'], {type: 'text/csv'}) a.href = URL.createObjectURL(data) // 轉換為url地址 document.body.appendChild(a) // 添加a標簽 a.click() // a標簽點擊
方式二: 不轉換二進制
let a =document.createElement('a')
a.download = '文件名字.csv'
a.href= 'data:text/csv;charset=utf-8,' + encodeURI('a, b, c,
aa, bb, cc') // 使用dataUrl: data:test/csv 其中data為dataUrl的頭 text/csv為類型 分號表示第二個參數(shù) 逗號過后添加參數(shù)。
document.body.appendChild(a)
a.click()
補充:
Blob([data], {type: 'application/json'}) 其中data是字符串或者arraybuffer,返回blob對象
reader = new FileReader: reader為讀取文件的對象,reader.readAsArrayBuffer(data) 其中data為 file(input.files[x])或者blob
URL.createObjectURL(blob) 可以將blob 轉換為可以使用的url
總結
- 上一篇: 教你一招:使用最快速的方式激活windo
- 下一篇: 网址收集