js下载方法整理

发布: 2018-08-22 11:03:45标签: 前端开发

js下载方法整理

整理了几个简单的下载方法

01// 通过路径下载
02export function download(href, name = `${Date.now()}.txt`) {
03 const a = document.createElement('a')
04 a.download = name
05 a.style.display = 'none'
06 a.href = href
07 document.body.appendChild(a)
08 a.click()
09 document.body.removeChild(a)
10}
11
12// 下载blob对象
13export function downloadBlob(blob, name) {
14 const href = URL.createObjectURL(blob)
15 download(href, name)
16 URL.revokeObjectURL(url) // 取消引用
17}
18
19// 下载文字
20export function downloadStr(str, name) {
21 const blob = new Blob([str])
22 downloadBlob(blob, name)
23}
24
25// 下载图片
26function downloadImage(src, name = `${Date.now()}.png`) {
27 const image = new Image()
28 image.setAttribute('crossOrigin', 'anonymous')
29 image.src = src
30 image.onload = function () {
31 const canvas = document.createElement('canvas')
32 canvas.width = image.width
33 canvas.height = image.height
34
35 const context = canvas.getContext('2d')
36 context.drawImage(image, 0, 0, image.width, image.height)
37 const href = canvas.toDataURL('image/png')
38 download(href, name)
39 }
40}
41
42export default {
43 download,
44 downloadBlob,
45 downloadStr,
46 downloadImage
47}
48
复制代码