使用Tizen SDK的Filesystem API,我得到一个javascript文件对象,它在console.log上打印以下数据:
File
created: Thu Dec 14 2017 09:59:51 GMT+0100 (CET)
fullPath: "/opt/share/folder/image.jpg"
get fileSize: function fileSizeGetter() {var _realPath=commonFS_.toRealPath(this.fullPath);var _result=native_.callSync('File_statSync',{location:_realPath});var _aStatObj=native_.getResultObject(_result);return _aStatObj.isFile?_aStatObj.size:undefined;}
isDirectory: false
isFile: true
length: undefined
mode: "rw"
modified: Thu Dec 14 2017 09:59:51 GMT+0100 (CET)
name: "image.jpg"
parent: File
path: "/opt/share/folder/"
readOnly: false
set fileSize: function () {}
__proto__: File
问题是文件的长度是未定义。这导致我的Filereader readyState保持在0(EMPTY)状态(或者问题可能在其他地方)。
为什么我的代码返回未定义长度参数?
我的代码:
tizen.filesystem.resolve('/opt/share/folder/image.jpg', function(file) {
console.log(file);
var reader = new FileReader();
console.log(reader);
reader.readAsArrayBuffer(file);
reader.onload = fileLoad;
reader.onerror = function(evt){
console.log(evt.target.error.name);
}
});
读者的控制台价值:
FileReader
constructor: FileReaderConstructor
error: null
onabort: null
onerror: function (evt) {
onload: function fileLoad(evt) {
onloadend: null
onloadstart: null
onprogress: null
readyState: 0
result: null
__proto__: FileReaderPrototype
精度:
使用文件网址在画布中插入图片正在运行,文件已存在于设备上
答案 0 :(得分:1)
根据the documentation,length
用于表示目录的File
个实例(它告诉您目录包含多少个文件和目录)。对于实际代表文件的File
,您可以使用fileSize
。
我在Tizen file system documentation的任何地方都看不到FileReader
。相反,examples reading and writing files通过FileStream
使用openStream
。