jQuery / Javascript创建用于用户下载的文本文件

时间:2016-10-10 11:57:42

标签: javascript jquery

我的网站上有一个表单,可根据输入为用户创建输出。 我想创建一个带有此输出的文本文件供用户下载(使用浏览器下载提示,没有安全问题)。

有没有办法用Javascript / jQuery做这个而不用PHP在服务器上先创建文件?

我可以使用某种Javascript对象作为虚拟文件,以便用户可以下载(以解决用户无法从服务器下载的真实txt文件的问题)吗?

1 个答案:

答案 0 :(得分:3)

您可以使用Blobbrowser supportpolyfill)来实现这一目标。看看这个example by @UselessCode

(function () {
var textFile = null,
  makeTextFile = function (text) {
    var data = new Blob([text], {type: 'text/plain'});

    // If we are replacing a previously generated file we need to
    // manually revoke the object URL to avoid memory leaks.
    if (textFile !== null) {
      window.URL.revokeObjectURL(textFile);
    }

    textFile = window.URL.createObjectURL(data);

    return textFile;
  };


  var create = document.getElementById('create'),
    textbox = document.getElementById('textbox');

  create.addEventListener('click', function () {
    var link = document.getElementById('downloadlink');
    link.href = makeTextFile(textbox.value);
    link.style.display = 'block';
  }, false);
})();
<textarea id="textbox">Type something here</textarea> <button id="create">Create file</button> <a download="info.txt" id="downloadlink" style="display: none">Download</a>