相关疑难解决方法(0)

在JavaScript中从base64字符串创建Blob

我在字符串中有base64编码的二进制数据.

const contentType = 'image/png';
const b64Data = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
Run Code Online (Sandbox Code Playgroud)

我想创建一个blob:包含此数据的URL并将其显示给用户.

const blob = new Blob(????, {type: contentType});
const blobUrl = URL.createObjectURL(blob);

window.location = blobUrl;
Run Code Online (Sandbox Code Playgroud)

我还没有弄清楚如何创建Blob.

在某些情况下,我可以通过使用data:URL 来避免这种情况.

const dataUrl = `data:${contentType};base64,${b64Data}`;

window.location = dataUrl;
Run Code Online (Sandbox Code Playgroud)

但是在大多数情况下,data:URL非常大.


如何Blob在JavaScript中将base64字符串解码为对象?

javascript base64

405
推荐指数
13
解决办法
39万
查看次数

Javascript,以编程方式触发firefox中的文件下载

我在内存中有一个数据uri,我希望用户下载.

这个小提琴适用于chrome而不是FF:http://jsfiddle.net/6W2TY/

单击运行时,它将以chrome格式下载微小图像,并在FF中不执行任何操作.任何人都可以帮助我理解为什么它在FF中不起作用以及我需要做些什么才能使它工作?

谢谢!

javascript firefox dom google-chrome

10
推荐指数
2
解决办法
2万
查看次数

下载时重命名文件

我想在用户下载文件时重命名文件.

现在,我正在发送内容处理和内容长度标题,然后使用fpassthru PHP函数将文件发送给用户.

但是这种方法有3个问题:

  1. 如果我以这种方式发送大(3-4Gb以上)文件,那么我的PHP脚本运行时间过长,可能会被超时杀死.
  2. 如果用户取消下载,PHP脚本将继续读取并发送该文件
  3. 如果用户暂停下载,则以后无法恢复.

有没有更好的方法可以在下载时重命名文件?

php

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

javascript ×2

base64 ×1

dom ×1

firefox ×1

google-chrome ×1

php ×1