- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码:
var reader = new FileReader();
reader.onload = function(e) {
download(reader.result, "Test.stl");
}
reader.readAsBinaryString(input_file_field.files[0]);
结果文件:
原始文件:
输出几乎相同,差异很小(这不是“下载”功能的问题,如果我将日志放入控制台也是一样的)。
对正在发生的事情有什么想法吗?
编辑:
这是我用于二进制转换的代码(两者都不起作用):
var reader = new FileReader();
reader.onload = function(e) {
var fileData = reader.result;
var bytes = new Uint8Array(fileData);
var binaryText = '';
for (var index = 0; index < bytes.byteLength; index++) {
binaryText += String.fromCharCode(bytes[index]);
}
download(binaryText, "Test.stl");
}
reader.readAsArrayBuffer(input_field.files[0]);
最佳答案
在将文件作为 ArrayBuffer 读取后,内容将采用二进制格式(作为原始字节数组)。
这一行:
binaryText += String.fromCharCode(bytes[index]);
然而,由于 ASCII 范围 (0-127) 之外的任何值都受制于 16 位 unicode 编码 (UTF-16/USC-2),并且原始字节最终可能会使用两个字符来表示,因此
可能会造成困惑源值。
例如,您可以看到第一个差异出现在位置 0x55、字节值 0xB3(十进制为 179)和 ASCII 范围之外的位置,变为 0xC2B3。下一个值 0xEF(十进制为 239)变为 0xC3AF,然后保留下一个 0x3E,因为它小于 128,依此类推。
但是,由于数据已经是二进制格式,因此没有充分理由执行此转换步骤。可以(并且应该)删除整个循环。
只需将一个 View 分配给 ArrayBuffer(就像您在转换步骤之前所做的那样)并使用它通过索引/位置读取数据。
如果您打算解析格式,我建议您使用 DataView 而不是 Uint8Array,因为文件倾向于定义可变宽度的数据字段,而 DataView 在这些情况下更加灵活和方便。
如果它是为了传输到服务器/商店以供下载,您可以简单地保留原始文件 blob 并按原样发送它(参见第一个 test fiddle)。
关于javascript - readAsBinaryString() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42353281/
这是我的代码: var reader = new FileReader(); reader.onload = function(e) { download(reader.result, "Te
您好,我正在使用 javascript 上的文件 API 制作我的第一个项目,这是一个简单的程序,它将文件作为输入并在 Div 上显示其内部代码。我想知道是否有办法让这段代码在没有事件监听器和事件处理
尝试使用 fileReader.readAsBinaryString 通过 AJAX 将 PNG 文件上传到服务器,精简代码(fileObject 是包含我文件信息的对象); var fileRead
我想将图像以二进制形式保存到用户本地主机以供将来引用,然后在以后从该二进制文件生成一个 dataurl,问题是,它不起作用。 var reader = new FileReader(); reader
我有一个以下格式的文件: utf-8 encoded text block separator binary data block 我使用 JavaScript 的 FileReader 使用 将文件
使用 filereader API通过使用 readAsDataURL 读取文件,可以显示文件的预览。 我想做的是: 用户选择一个文件 显示预览,以便用户获得一些反馈。 如果用户满意,他将数据提交到后
我目前正在关注this tutorial用于从 javascript 将图像上传到 Google Drive。该示例代码运行良好,您可以选择要从硬盘上传的文件。我现在尝试根据我的目的修改它,以便它以标
似乎readAsBinaryString ,JavaScript FileReader 对象的方法,在 IE10 中不受支持。我已按照 this HTML5 Rocks article 中的建议尝试了
本页http://www.html5rocks.com/en/tutorials/file/dndfiles/如果您向下滚动到示例“示例:切片文件。试试吧!”您将看到使用 readAsBinarySt
我正在使用 reader.readAsArrayBuffer() 将文件发送到 node.js,以便我可以将其保存在/public 文件夹中。 reader.readAsArrayBuffer(eve
如果有输入类型文件 和一张图片 如果选择了一个文件,我想从图像中读取 Exif 数据并将其加载到 img 标签中。 var $inputFile = $("#file"); $inputFile.
简而言之,我想将图像的二进制数据发送到我的处理程序,该处理程序将作为字节数组保存在数据库中。在我的 Javascript 中使用 readAsBinaryString(f) 读取文件输入的值,我将得到
完整代码在 https://gist.github.com/992562 . 我正在使用 HTML 文件 API 并通过拖放将文件通过 XHR post 上传到 PHP 脚本。在程序上,一切似乎都正常
文件读取器。 readAsBinaryString()返回 UTF-8 编码的二进制字符串。我如何才能获取作为一系列 Unicode 转义序列 (\uxxxx) 的数据? 最佳答案 FileReade
以下代码适用于 Chrome 浏览器。 $('#file').change(function(e) { var fileReader = new FileReader(), f
如何等到onload事件完成 function(){ var filedata=null; reader.onload=function(e){ filedata=e.target.resul
举个例子,当我使用 FileReader API 从文件中读取 π 字符 (\u03C0) 时,当我使用 FileReader 读取它时,我会将 pi 字符返回给我.readAsText(blob)
有没有办法将 HTML Canvas 的内容读取为二进制数据? 目前我有以下 HTML 来显示输入文件和它下面的 Canvas : Get Image Content Input: Canvas 然后
我正在尝试解析 xls 文件,请参见下面的文件 https://filebin.net/jm37356p8nkzgycm 获取错误 无法在“FileReader”上执行“readAsBinaryStr
在 HTML5 中,引入了 FileReader API。我无法真正理解 readAsBinaryString() 和 readAsDataURL() 之间的区别。我从几个地方阅读了文档,但仍然无法完
我是一名优秀的程序员,十分优秀!