相关疑难解决方法(0)

HTML5文件API读作文本和二进制文件

我目前正在研究HTML5文件API,我需要获取二进制文件数据. The FileReaderreadAsText,readAsDataURL方法工作正常,但readAsBinaryString返回相同的数据readAsText.

我需要二进制数据,但我得到一个文本字符串.我错过了什么吗?

html javascript html5 file

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

JavaScript BLOB 出来的比输入大得多

我们通过拖放变量(使用 dropzone.js - 在此阶段它是 base64 加上用于指定文件类型的字符)来接收本地文件(通常是 PDF、PNG 或 JPG)。我们将它(现在是二进制的)加密到一个 javascript 变量中。然后我们使用该变量创建一个 Blob 并将其上传到运行 PHP 的服务器。(请参阅我们了解如何将 js 变量发送到 PHP $_FILE。)

我们发现 blob 的 .size 比我们上传的文件的 .length 大 50% 左右。(我们一直通过转换为 base64 然后使用 JSON 上传,但我们希望改变的一个原因是希望避免使用 base64 时大小增加 33%。)

从中等尺寸到较大尺寸,斑点始终大约 50%。作为一个小测试,我们使用 120 个字符作为输入创建了一个 Blob,发现 Blob.size 为 210。(我们通常使用正确的 file.type;image/png 只是为了让它被解释为没有的二进制数据)不需要编码。)从我们代码中的实际使用来看:我们上传了一个 900K 的 PDF 文件。类型类似于“应用程序/pdf”。由此产生的 blob 就像 1,400K。也尝试过 PNG。

我认为 Blob 应该与输入的大小相同,不是吗?我们可能做错了什么?

new Blob(["123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"], {type:"image/png"});
Run Code Online (Sandbox Code Playgroud)

javascript

8
推荐指数
1
解决办法
8340
查看次数

标签 统计

javascript ×2

file ×1

html ×1

html5 ×1