📜  blob 到文件 javascript (1)

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

将 Blob 转换为文件并下载

在 Web 应用程序中,Blob 对象被用于存储和操作二进制数据,如图像和音频文件。在某些情况下,我们需要将 Blob 转换为文件并下载,以便在客户端保存数据。

将 Blob 转换为文件

Blob 对象可以通过 Blob() 构造函数或从其他 API 中创建,例如 XMLHttpRequestFetch API。要将 Blob 转换为文件,可以创建一个 File 对象,并将 Blob 对象作为参数传递。以下是一个例子:

const blob = new Blob(['Hello, World!'], { type: 'text/plain' });
const file = new File([blob], 'hello.txt', { type: 'text/plain' });

在上面的代码中,我们创建了一个包含字符串“Hello, World!”的 Blob 对象,并将其转换为文件。文件名为“hello.txt”,文件类型为“text/plain”。

下载文件

要下载文件,我们可以创建一个链接,然后将其点击。以下是一个例子:

<a href="#" id="download-link">Download</a>
const downloadLink = document.getElementById('download-link');
downloadLink.addEventListener('click', () => {
  const blob = new Blob(['Hello, World!'], { type: 'text/plain' });
  const file = new File([blob], 'hello.txt', { type: 'text/plain' });
  const url = URL.createObjectURL(file);
  downloadLink.setAttribute('href', url);
  downloadLink.setAttribute('download', 'hello.txt');
});

在上面的代码中,我们在下载链接上添加了一个单击事件监听器。在单击链接时,我们创建了一个 Blob 对象并将其转换为文件。然后,我们使用 URL.createObjectURL() 方法创建一个 URL,该 URL 包含指向文件的引用。最后,我们将链接的属性设置为 URL,并指定文件名为“hello.txt”。

完整代码
const downloadLink = document.getElementById('download-link');

downloadLink.addEventListener('click', () => {
  const blob = new Blob(['Hello, World!'], { type: 'text/plain' });
  const file = new File([blob], 'hello.txt', { type: 'text/plain' });
  const url = URL.createObjectURL(file);

  downloadLink.setAttribute('href', url);
  downloadLink.setAttribute('download', 'hello.txt');
});

以上是使用 JavaScript 将 Blob 转换为文件并下载的示例代码。通过这个例子,希望能帮助您更好地理解如何在 Web 应用程序中操作 Blob 和文件。