我正在使用 fileTransfer.download 方法从我的服务器中检索 PNG 文件。
但是,当我尝试下载一个不存在的文件时,API 会在我手机的文件系统上创建一个大小为 0 位的文件(将其名称传递给下载方法)。
这是正常行为吗,我预计不会在出错时创建文件。
我可以有一些代码来手动删除文件,但我想知道这是否真的需要,或者我是否在滥用 API。
我正在使用版本 2.2.0
非常感谢。
此致。
弗洛伦特。
我已经在 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");
}
嘿,看看我的答案在这里-
让我知道。如果还有问题。在您的 config.xml 中包含以下内容
对于安卓 -
<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" />