文件长度未定义

时间:2017-12-14 09:10:32

标签: javascript file filereader tizen

使用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

精度:

使用文件网址在画布中插入图片正在运行,文件已存在于设备上

1 个答案:

答案 0 :(得分:1)

根据the documentationlength用于表示目录的File个实例(它告诉您目录包含多少个文件和目录)。对于实际代表文件的File,您可以使用fileSize

我在Tizen file system documentation的任何地方都看不到FileReader。相反,examples reading and writing files通过FileStream使用openStream