我能';t在我的Android手机上从文件系统API打开本地文件
我制作了一个HTML 5应用程序,可以在我的服务器上下载pdf文件,并将其写入浏览器沙盒系统。我能';t在我的Android手机上从文件系统API打开本地文件,android,html,google-chrome,html5-filesystem,Android,Html,Google Chrome,Html5 Filesystem,我制作了一个HTML 5应用程序,可以在我的服务器上下载pdf文件,并将其写入浏览器沙盒系统。 当我转到filesystem:myServerUrl/persistent时,我会看到大小正确的pdf文件。我点击它,会有一个“下载开始”通知,但大约一秒钟后,我收到一个下载错误(当我查看Android日志时,原因是404)。 我试过下载。但我也有同样的错误。 请注意,它在我的计算机上运行良好,当我尝试使用图像时,我可以直接显示它(只需单击文件名),但无法下载它。 我在任何地方都找不到任何信息,我是不
当我转到filesystem: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);
});
}
更新:准确的英文错误信息是
下载不成功
此外,当我显示一个本地图像并长时间单击它时,“保存图像”选项被禁用。这是有意的吗?为什么?我刚刚在稳定的Beta版上测试了这一点。这是一种工作方式 Stable(27)存在无法下载客户端生成的文件的问题。例如,如果您使用a[download]属性,您将看到它打开了下载程序,但只是坐在那里无所事事 在测试版(28)中,一切都按预期进行,因此我希望您的pdf也能保存
我在这里简化了您的代码:它适用于Beta版的两个链接。但只有后者才是稳定的。这似乎是一个bug:在稳定的环境中,您只能打开浏览器可读的文件(txt、png等),但无论如何都不能将它们保存到其他地方。在Beta版上,它运行良好。