【问题标题】:Chrome File Link Big Length - Tab CrashesChrome 文件链接大长度 - 选项卡崩溃
【发布时间】:2014-06-18 11:56:58
【问题描述】:

我正在使用 JSZip 在我的 HTML 页面中创建 zip 文件。创建 zip 文件后,我会使用以下机制下载这些文件

document.getElementById(elementId).href = "data:application/zip;base64,"+content;

这适用于正常情况。但是,有时 zip 文件的长度超过 2 MB,因此 url 的长度会超过 2097152 个字符。当我单击此链接时,选项卡崩溃。从这个link,我发现

当前 chrome 中的 URL 长度限制为 2097152 个字符

我想知道在不拆分 zip 文件的情况下解决此问题的可能方法是什么。是否有其他方式来呈现文件以供下载?

【问题讨论】:

    标签: javascript google-chrome download jszip


    【解决方案1】:

    您可以在最近的浏览器中使用saveAs(或FileSaver.js polyfill)。来自http://stuk.github.io/jszip/documentation/howto/write_zip.html

    var blob = zip.generate({type:"blob"});
    saveAs(blob, "hello.zip");
    

    【讨论】:

    • 谢谢大卫。我会试试这个,但有一个问题。 saveAs 会打开像 location.href 这样的弹出窗口吗?因为我不想弹出。相反,我想将下载链接存储在用户以后可以单击下载的元素中。这样做的原因是在 1 次运行期间生成了多个 zip 文件,我不想让弹出窗口要求保存每个文件。谢谢。
    • 是的,只要您拨打saveAs,您就会得到下载弹出窗口。您可以使用 blob url 来获得您想要的行为(请务必在 IE 10/11 上进行测试,我上次尝试时遇到了问题)。另一种解决方案是存储生成的 zip 并在用户单击链接时触发 saveAs 调用。
    • 如何存储 zip 并在点击时触发 saveAs?在此期间,blob 将存储在哪里?
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2014-02-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2012-06-09
    • 2017-06-05
    相关资源
    最近更新 更多