Cordova FileEntry 无法返回文件 -> FILE_NOT_FOUND_ERR

Cordova FileEntry can't return File -> FILE_NOT_FOUND_ERR

提问人:matthisb 提问时间:4/15/2014 最后编辑:matthisb 更新时间:3/25/2018 访问量:2298

问:

我正在尝试从iOS文件系统获取文件。 我的文件位于:

console.log(PATH);
--> file:///var/mobile/Applications/B816F30B-791A-43E5-B33A-A26075E8B585/Documents/123123123.wav

现在我正在尝试获取 via File APIFile

window.resolveLocalFileSystemURL(PATH, function(fileEntry){
    console.log(fileEntry.fullPath); // /var/mobile/Applications/B816F30B-791A-43E5-B33A-A26075E8B585/Documents/123123123.wav
    console.log(fileEntry.name); // 123123123.wav
    console.log(fileEntry.toURL()); cdvfile://localhost/temporary/var/mobile/Applications/B816F30B-791A-43E5-B33A-A26075E8B585/Documents/123123123.wav

    fileEntry.file(function(file){
        // do stuff
    }, function(error){
        console.log(error);
    });
});

找到了,但是当我打电话时,我得到一个看起来像这样的:FileEntryfile()FileError

[Log] FileError (main.js, line 15569)
    code: 1
    __proto__: FileError

错误代码 1 为:NOT_FOUND_ERR。

为什么我在找到日志记录时得到NOT_FOUND_ERR并且日志记录看起来没问题?FileEntry

JavaScript 文件 cordova fileapi

评论


答:

0赞 Marius 3/25/2018 #1

这是我的体会:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
    console.log('file system open: ' + fs.name);

    fs.root.getFile(fileName, {}, function (fileEntry) {
        console.log("fileEntry is file?" + fileEntry.isFile.toString());
        fileEntry.file(function (file) {
                var reader = new FileReader();
                reader.onloadend = function (evt) {
                return success(evt.target.result);
            };
            reader.readAsDataURL(file);
        });

    }, function (e) {
        throw JSON.stringify(e);
    });

}, function (e) {
    throw JSON.stringify(e);
});

您可以调整它以使用您的 URL。