【问题标题】:I can't open local files from Filesystem API on my Android phone我无法从 Android 手机上的 Filesystem API 打开本地文件
【发布时间】:2013-06-21 15:43:59
【问题描述】:

我制作了一个 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

此外,当我显示本地图像并长按它时,“保存图像”选项被禁用。会不会是故意的?为什么?

【问题讨论】:

标签: android html google-chrome html5-filesystem


【解决方案1】:

我刚刚在 Stable Beta 上对此进行了测试。而且它有点工作。

Stable (27) 存在无法下载客户端生成文件的问题。例如,如果您使用 a[download] 属性,您会看到它打开了下载器,但只是坐在那里什么都不做。

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

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

【讨论】:

  • 在稳定版上,您只能打开浏览器可读的文件(txt、png、...),但无论如何您都无法将它们保存在其他地方。在 Beta 版上运行良好。
猜你喜欢
  • 2019-08-08
  • 1970-01-01
  • 2016-10-30
  • 2019-07-19
  • 2016-07-13
  • 1970-01-01
  • 2015-04-18
  • 2017-06-05
  • 1970-01-01
相关资源
最近更新 更多