【问题标题】:Phonegap Filetransfer downloadPhonegap 文件传输下载
【发布时间】:2014-07-30 03:24:43
【问题描述】:

我是 stackoverflow 的新手。这是我第一次使用Phonegap,我真的遇到了问题。我需要制作一个表格并通过单击每个元素开始下载一个 pdf 文件并创建一个新文件夹(如果它不存在)。但是用phonegap编译后我什至无法下载文件。我看到的所有例子,都是通过onload下载一张图片。

<script type="text/javascript">
function downloadFile(){
 var url = 'http://http://legalespymes.com.ar/legalespymes/abonos/aseguradoras.pdf';
    var filePath = 'local/path/to/your/file';
    var fileTransfer = new FileTransfer();
    var uri = encodeURI(url);
    fileTransfer.download(
        uri,
        filePath,
        function(entry) {
            console.log("download complete: " + entry.fullPath);
        },
        function(error) {
            console.log("download error source " + error.source);
            console.log("download error target " + error.target);
            console.log("upload error code" + error.code);
        },
        false,
        {
            headers: {
                "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
            }
        }
    );
}
</script>

HTML

<td onclick="downloadFile()">Row 1</td>

【问题讨论】:

  • 您遇到什么错误?您是否启用了 FileTransfer 插件并在 config.xml 中指定了正确的包名称?
  • 在尝试这样做之前是否触发了“deviceready”事件?

标签: javascript android ios cordova file-transfer


【解决方案1】:

首先,您的网址多次包含 http 无效

var url = 'http://http://legalespymes.com.ar/legalespymes/abonos/aseguradoras.pdf';

这样改

var url = 'http://legalespymes.com.ar/legalespymes/abonos/aseguradoras.pdf';

如果您要创建多个目录并将文件存储在该目录中,这可能是创建问题。(示例 [project/sample/local] 未同时创建。所以文件不下载)。并确保文件下载插件在config.xml 并指定 phonegap 版本。

使用此代码一次创建多个目录。

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

// create directory
function gotFS(fileSystem) {
    window.FS = fileSystem;
    var printDirPath = function(entry){
        console.log("Dir path - " + entry.fullPath);
    }

    createDirectory("local/path/to/your", printDirPath);
}
function fail() {
    console.log("failed to get filesystem");
}

function createDirectory(path, success){
    var dirs = path.split("/").reverse();
    var root = window.FS.root;
    var createDir = function(dir){
        console.log("create dir " + dir);
        root.getDirectory(dir, {
            create : true,
            exclusive : false
        }, successCB, failCB);
    };

    var successCB = function(entry){
        root = entry;
        if(dirs.length > 0){
            createDir(dirs.pop());
        }else{
            success(entry);
        }
    };

    var failCB = function(){
    };

    createDir(dirs.pop());
}

现在你编写文件下载代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多