我正在尝试在服务器上下载动态生成的文件。 使用phonegapbuild 1.4.1尝试一个简单的应用程序。
首先,我尝试了直接链接到返回文件的服务器页面 通过http“内容类型”和“内容 - 配置:附件; filename =“headers。此下载链接在常规浏览器中正常工作。 但是当在phonegap应用程序中单击此链接似乎不起作用时(至少在android 2.3.3中),当单击链接时,会调用服务器,但是 没有任何反应。
然后我发现了一个名为的phonegap api函数 FileTranfer.download。我不知道如何指定文件路径,如何 我可以知道默认下载位置(跨平台)吗? 我已经尝试过fileSystem.resolveFileSystemURI函数,但没有 发生(没有成功或失败事件),我也尝试了以下 句子fileSystem.root.getDirectory(“download”,{create:true}); 它挂在那里,下一行是一个警报永远不会被执行。
任何人都可以帮助我,并指出一个可靠的下载方式 附件(最好是通过服务器的直接链接)
答案 0 :(得分:1)
如果问题只在于android,那么这可能对你有所帮助,我在Android中试过它,希望这也适用于IOS。
enter code here
function fun(){
var dfd = $.Deferred(function (dfd){
var remoteFile = "Your link";
var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile(localFileName, {create: true, exclusive: false},
function(fileEntry) {
var localPath = fileEntry.fullPath;
if (device.platform === "Android" && localPath.indexOf("file://") === 0) {
localPath = localPath.substring(7);
}
var ft = new FileTransfer();
ft.download(remoteFile, localPath, function(entry) {
dfd.resolve('file downloaded');
// Do what you want with successful file downloaded and then
// call the method again to get the next file
//downloadFile();
}, fail);
}, fail);
}, fail);
});
return dfd.promise();
}
fun().then(function(msg){
if(msg==="file downloaded")
{
alert("Download complete");
}
else
{
alert("Download error")
}
});
function fail(){
alert("error");
}
答案 1 :(得分:0)
正在寻找一条完整的道路。所以像" /sdcard/download.txt"会工作。