JavaScript FileReader中readAsDataURL()与readAsArrayBuffer()和re
Difference between readAsDataURL() and readAsArrayBuffer() and readAsText() in JavaScript FileReader
我发现了一个图片上传预览的代码,我很困惑FileRead()
中发生了什么?
var openFile = function(event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function() {
var dataURL = reader.result;
var output = document.getElementById('output');
console.log(dataURL)
output.src = dataURL;
};
reader.readAsDataURL(input.files[0]);
};
-
.readAsDataURL()
返回一个URL,该URL将文件的数据表示为base64编码字符串 -
.readAsArrayBuffer()
返回一个ArrayBuffer,表示文件的数据 -
.readAsText()
以文本字符串的形式返回文件的数据。
有关更多信息,请查看此FileReader
文档。
我认为,如果你想拥有文件上传功能,然后向用户显示他们从电脑上选择并将要上传的文件的预览,那么就使用.readAsDataURL()
。
如果要操作文本文件,请使用.readAsText()
如果您想要操作像图像这样的东西(例如,将jpeg转换为PNG),那么请使用.readAsArrayBuffer()
。
还有第四种方法.readAsBinaryString
,但是Mozilla文档建议使用.readAsArrayBuffer()
。
readAsDataURL()
将返回一个字符串,该字符串可以粘贴到HTML标记的url属性中(例如:img中的src=
)。对于img
标签,它将有效地显示图像,就像src
是读取的文件的地址一样。它是对原始文件内容的转换(更大)。
readAsText()
将返回一个字符串,该字符串可以被JavaScript函数解析或显示在文本区域中,并且可能被用户理解。这通常对阅读文本文件很有用。
相关文章:
- 使用Re-base时,在React中从状态绑定和取消绑定Firebase
- 有没有一种优雅的方式来告诉esint,以确保我们're没有使用任何ES6语法/函数
- JavaScript FileReader中readAsDataURL()与readAsArrayBuffer()和re
- 在窗口上运行Meteor;您're不在Meteor项目目录中”;升级到Meteor.js 1.3之后
- 匹配单词中两个相等的字符,并替换为一个RE
- 搜索JS文件您're表示字符串
- FileReader.readAsArrayBuffer return is null
- Javascript - 文件上传,readAsArrayBuffer
- 使用 ReactFire 或 Re-base 显示来自 Firebase 的用户特定数据
- RE-在PHP页面中打印包含其数据的特定表单
- 元素没有显示在包装中,它们're在下面
- 有人能解释一下下面的javascript RE代码吗
- 'babelHelpers.taggedTemplateLiteral'在使用标记的模板字符串时,在re
- TinyMCE UpdatePanel Re Init Issue
- 出于什么原因,读者可以.readAsArrayBuffer失败
- CustomElements.js:596Uncaught TypeError: Cannot assign to re
- 尝试在JSF页面中使用Three.js - ShaderMaterial,未捕获TypeError: Cannot re
- 获取"TypeError: document.getElementById(..)是null"当re
- 在 Firefox 中对更改的文件使用 FileReader.readAsArrayBuffer()
- Javascript issue re form reset