javascript - jQuery/Javascript 创建一个文本文件供用户下载

标签 javascript jquery

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

有没有一种方法可以使用 Javascript/jQuery 来执行此操作,而无需先使用 PHP 在服务器上创建文件?

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

最佳答案

您可以通过使用Blob来实现这一点( browser 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>

关于javascript - jQuery/Javascript 创建一个文本文件供用户下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39957758/

相关文章:

javascript - Semantic-ui modal - 页面跳转到顶部

javascript - 从 jQuery Deferred 函数获取数据

javascript - 你如何防止换行符添加到 Handlebars 部分?

javascript - 如何修复排序表 JavaScript 中的第二行?

javascript - 在 AJAX 调用上返回 html 表单字段

javascript - 更改事件不会因编程更改而触发

javascript - 使用箭头键导航输入

javascript - 如何使用 knockout 和工具提示在数组对象之间添加分隔符

javascript - 迭代 JSON 以创建导航

javascript - 使用变量作为多级 json 对象中的键