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

jQuery/Javascript create a text file for user download

本文关键字:文本 一个 文件 下载 用户 Javascript 创建 jQuery      更新时间:2023-09-26

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

是否有办法做到这一点与Javascript/jQuery不使用PHP创建服务器上的文件第一?

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

您可以通过使用Blob(浏览器支持,polyfill)来实现这一点。查看@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>