📜  javascript 下载字符串作为文件 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:40.141000             🧑  作者: Mango

Javascript 下载字符串作为文件

在 web 应用程序中,我们经常会需要将数据以某种格式下载下来,让用户保存在本地。对于字符串类型的数据,我们可以使用 Javascript 来实现这一功能。

实现方式

我们可以使用 Blob 对象来创建一个类似文件的对象,然后通过创建一个下载链接来下载该对象。具体实现过程如下:

function downloadStringAsFile(filename, text) {
  var blob = new Blob([text], { type: 'text/plain' });
  var url = URL.createObjectURL(blob);
  var link = document.createElement('a');
  link.setAttribute('href', url);
  link.setAttribute('download', filename);
  link.style.display = 'none';
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  URL.revokeObjectURL(url);
}

这个函数接收两个参数:文件名(包含扩展名)和字符串类型的数据。它将数据封装为 Blob 对象,并使用 URL.createObjectURL 方法创建一个 URL,然后通过创建一个 a 标签来在浏览器中下载文件。

示例

以下是一个示例,演示如何在浏览器中下载一个字符串:

downloadStringAsFile('hello.txt', 'Hello World!');

执行这个代码片段后,浏览器会自动下载一个名为 hello.txt 的文件,其中包含文本“Hello World!”。

注意事项

需要注意的是,由于 Blob 对象是占用内存的,因此我们需要在使用完毕后手动销毁它,并且在创建下载链接之后立即将其从文档中移除。我们可以使用 URL.revokeObjectURL 方法来销毁 URL,避免内存泄漏。

另外,我们应该确保文件名的扩展名与数据类型相匹配,例如对于文本文件,我们应该使用 .txt 或者 .md 文件扩展名,而对于图片文件,则应该使用 .png 或者 .jpg 文件扩展名。