我试图保存一个文件,该文件存在于我的服务器上并显示在我的应用程序中,以便下载并保存到客户端的文件系统中。什么是在流星中做到这一点的最好方法?
我目前的实现是使用window.requestFileSystem和FileTransfer(我相信它是一个cordova插件)
我也试过LocalFileSystem.PERSISTANT,但后来我得到一个未定义的错误。
代码:
var fileSystem;
//step one is to request a file system
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0,
function(fs) {
fileSystem = fs;
console.log(fileSystem);
var fileTransfer = new FileTransfer();
var uri = encodeURI(imageBaseUrl + origUri);
fileTransfer.download(
uri,
fileSystem.root.fullPath + 'download.pdf',
function(entry) {
console.log("download complete: " + entry.fullPath);
},
function(error) {
console.log(error);
},
false, {
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
}, function(e) {
alert('failed to get fs');
alert(JSON.stringify(e));
});

我在Android上遇到的错误如下:
FileSystem对象:
name: "temporary"
root: DirectoryEntry
filesystem: FileSystem
fullPath: "/"
isDirectory: true
isFile: false
name: ""
nativeURL: "file:///storage/emulated/0/Android/data/com.myapp.app/cache/"
FileTransferError对象:
body: null
code: 1
exception: "/download.pdf: open failed: EROFS (Read-only file system)"
http_status: 200
source: "http://example.com/upload_H5XtiJJRf2Bmeq3d.pdf"
target: "/download.pdf"
事情是,在AndroidManifest.xml中,请求EXTERNAL_WRITE_ACCESS的权限,那么文件系统肯定应该是可写的吗?
是否需要授予其他权限,如果需要,我可以在何处以及如何申请?
谢谢!