我无法在Android手机上的Filesystem API中打开本地文件

时间:2013-06-21 15:43:59

标签: android html5 google-chrome html5-filesystem

我制作了一个HTML 5应用程序,在我的服务器上下载pdf文件,并将其写入浏览器沙箱系统。
当我去文件系统:myServerUrl / persistent时,我看到我的pdf文件大小正确。我点击它,并有一个“下载启动”通知,但大约一秒后,我收到下载错误(当我查看Android日志时的原因404)。
我尝试过下载。但我有同样的错误 请注意,它在我的计算机上工作正常,当我尝试使用图像时,我可以直接显示它(只需单击文件名),但无法下载。
我在任何地方找不到任何信息,我错过了什么?

我如何下载文件:

    function fetchResource() {
        var xhr = new XMLHttpRequest();
        xhr.open("GET", resourceURL, true);
        xhr.responseType = "arraybuffer";
        xhr.onload = function(e) {
            console.log("xhr responded");
            if (this.status == 200) {
                console.log("status 200");
                writeFile(this.response);
            }
        }
        xhr.send();
        console.log("xhr sent");
    }

我如何写文件:

    function writeFile(content){
        console.log("writeFile");
        fs1.root.getFile('test2.pdf', {create: true}, function(fileEntry) {

            // Create a FileWriter object for our FileEntry (log.txt).
            fileEntry.createWriter(function(fileWriter) {

              fileWriter.onwriteend = function(e) {
                console.log('Write completed.');
                alert("completed");
              };

              fileWriter.onerror = function(e) {
                console.log('Write failed: ' + e.toString());
                alert("erreur: "+e.toString());
              };

             var blob = new Blob([content]);                  
              fileWriter.write(blob);

            }, errorHandler);

        });
    }

更新:英文确切的错误信息是
<Untitled>
Download unsuccessful

此外,当我显示本地图像,并且我长按它时,禁用“保存图像”选项。这可能是有意的吗?为什么呢?

1 个答案:

答案 0 :(得分:0)

我刚刚在Stable,Beta测试了这个。它有点工作。

稳定(27)存在无法下载客户端生成的文件的问题。例如,如果您使用a [download]属性,您将看到它打开了下载程序,但只是在那里无所事事。

在Beta(28)中,一切都按预期工作,所以我希望你的pdf也能保存。

我在这里简化了您的代码:http://jsbin.com/opavet/latest适用于Beta上的两个链接。但只有后来稳定。