0

我在骨干模型中有一个 BASE64 编码文件。

看起来像这样(console.log(model.toJSON());):

Attachments: Array[1]
    0: Object
        Content: "JVBERi0xLjQKJeLjz9MKMSAwIG9iaiA8PC9UeXBlL..."
        ContentLength: 29512
        ContentType: "application/octet-stream"
        Name: "Notification.pdf"

如何将其作为点击事件的强制下载发送到浏览器?我想避免返回服务器执行此操作。

谢谢

4

1 回答 1

0

您有几个不同的选项,都涉及Data URIs

如果你只是想快速下载而不关心文件名是什么,那么你可以让你的 JS 这样做:

window.location = 'data:application/octet-stream;base64,JVBERi0xLjQKJ...';

但是,如果您希望能够为下载指定文件名,则需要使用新的 HTML5 功能和<a>标签。

var a = document.createElement('a');
a.href = 'data:application/octet-stream;base64,JVBERi0xLjQKJ...';
a.download = 'Filename.pdf';
a.click();

这将适用于较旧的浏览器,但由于该download属性是 HTML5 中的新属性,因此它们将下载没有正确文件名的文件。

于 2013-03-03T21:25:07.560 回答