创建的HTML / JavaScript的字符串变量大downloable文件 [英] Create big downloable file from string variable in HTML/Javascript

查看:309
本文介绍了创建的HTML / JavaScript的字符串变量大downloable文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个js脚本,我可以从一个字符串变量下载文件:

I created a js script where I can download a file from a string variable:

window.alert("a");
document.getElementById("export-graphml").innerHTML += "<a id=\"dl\" download=\"graph.graphml\">Download</a>"
window.alert("b");
var vdl = document.getElementById("dl");
window.alert(data.length);
vdl.href = "data:text/plain," + encodeURIComponent(data);

它的工作原理非常好,直到我的字符串VAR(数据)是不是太大。当我的数据量太大了code的最后一行使得Chrome和Firefox崩溃和IE浏览器没有反应。

It works very good until my string var (data) isn't too big. When my data is too big the last line of the code makes Chrome and Firefox crash and IE has no reaction.

我没有找到任何相关信息在任何地方大小的一个可能的限制。

I didn't find any infos on a possible limit of size anywhere.

如果您有任何想法感谢分享它。

If you have any idea thanks to share it.

推荐答案

试试这个(从10即工作,并在所有现代浏览器)

Try this (works from 10 ie, and on all modern browsers)

    var createObjectURL = (window.URL || window.webkitURL || {}).createObjectURL || function(){}; 
    var blob = null;
    var content = "byte array or string";
    var mimeString = "application/octet-stream"; 
    window.BlobBuilder = window.BlobBuilder || 
                         window.WebKitBlobBuilder || 
                         window.MozBlobBuilder || 
                         window.MSBlobBuilder;  


    if(window.BlobBuilder){
       var bb = new BlobBuilder();
       bb.append(content);
       blob = bb.getBlob(mimeString);
    }else{
       blob = new Blob([content], {type : mimeString});
    }
    var url = createObjectURL(blob);
    var a = document.createElement("a");
    a.href = url
    a.download = "file.txt";
    a.innerHTML = "download file";
    document.body.appendChild(a);

这篇关于创建的HTML / JavaScript的字符串变量大downloable文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆