我正在使用fileTransfer.download方法从我的服务器检索PNG文件。
但是,当我尝试下载不存在的文件时,API会在手机的文件系统上创建一个文件(给它传入下载方法的名称),大小为0位。
这是一种正常的行为,我希望在出错时不会创建文件。
我可以使用一些代码来手动删除文件,但我想知道这是否真的需要,或者我是否误用了API。
我正在使用2.2.0版
非常感谢。
最诚挚的问候。
弗洛朗。
答案 0 :(得分:1)
我在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);
}// You need to write IOS instead of Android
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)
嘿,看看我在这里的答案 -
Phonegap - Save image from url into device photo gallery
让我知道。如果还有任何问题。 在config.xml中包含以下内容
对于Android -
<feature name="http://api.phonegap.com/1.0/file" />
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
<param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
<feature name="Storage">
<param value="org.apache.cordova.Storage" name="android-package"/>
</feature>
对于IOS -
<plugin name="File" value="CDVFile" />
<plugin name="FileTransfer" value="CDVFileTransfer" />