Javascript - 从FileReader或base64创建下载链接

时间:2018-01-15 20:26:40

标签: javascript html base64

我正在使用以下代码来onLoad FileReader来创建一个标记,并将来自FileReader的结果放入href中。这是一个base64字符串。

   let reader = new FileReader()
    reader.readAsDataURL(myInputTypeFile.files[0])

    reader.onloadend = (e) => {
        let file
        for (let i = 0; i < attachInput.files.length; i++) {
            file = attachInput.files[i]

            if (file.type === 'application/pdf'){
                let anchor = document.createElement('a')
                anchor.setAttribute('class', 'q-attached-file')
                anchor.setAttribute('title', file.name)
                anchor.setAttribute('href', reader.result)
                anchor.innerText = file.name
                myElement.appendChild(anchor)
            }
        }
    }

这是制作的html:enter image description here

但是当我点击元素时,我只是在浏览器上看到'about:blank'。

更新

这个reader.result字符串是如何在console.log()中的 enter image description here

1 个答案:

答案 0 :(得分:3)

如果您的用户位于支持download attribute的浏览器中,您可以将其添加到您的锚标记。

<a download href="...">

但并非所有浏览器都支持下载属性。检查the support tables

有一个lib做了一些棘手的事情来回避浏览器之间的一些差异。如果您不介意额外的kb,请尝试使用DownloadJS