1

如何从给定URLPhoneGap中获取文件名?

在 JavaScript 中,我使用了这样的东西:

var uri = encodeURI("http://www.openerpspain.com/descargas-documentacion?download=2");

我的应用程序下载文件,但我必须手动设置文件名。为了说明,当我打电话时

onclick="descarga('http://www.openerpspain.com/descargas-documentacion?download=2')"

这个函数运行:

function descarga(URL){
    var rutaarchivo = "file:///sdcard/data/com.protocolo/test1.pdf";
    alert(rutaarchivo);
    var filetransfer = new FileTransfer();
    filetransfer.download(URL, rutaarchivo,
        function(entry){
          alert("Download complete : " + entry.fullPath);
        },function(error) {
          alert("download error source " + error.source);
        });
}

这会将下载保存到../com.protocolo,其文件名为test.pdf. 我希望能够将其保存为它在服务器上设置的名称 (*manual_openerp.230209.pdf*),位于真实URL *...//www.openerpspain.com/descargas/manual_openerp.230209。 pdf*。

我怎么做?

4

4 回答 4

2
String fileName = url.substring(url.lastIndexOf('/') + 1);

url你的文件的完整路径在哪里。

于 2013-04-11T10:37:52.597 回答
2

利用:

url="file:///sdcard/data/com.protocolo/test1.pdf?getVar=value";
url.replace(/\?.*$/,"").replace(/.*\//,"");
于 2013-04-11T11:55:03.240 回答
0

这基本上是在问如何使用 JavaScript 从完整路径中获取文件名?. 在这里,解决方案是:

var filename = url.replace(/^.*[\\\/]/, '');
于 2013-04-11T14:17:45.067 回答
0

我添加了我的 URL 参数。然后在PhoneGap中我使用了:

function getParameterByName( name,href ){
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( href );
    if( results == null )
      return "";
    else
      return decodeURIComponent(results[1].replace(/\+/g, " "));
}

调用自:

var filename = getParameterByName ("nombrefichero", url);

所以这样我可以从以下位置获取example.pdf:

http://www.download.com/fake/example.pdf?nombrefichero=example.pdf

然后我可以下载它,并将它保存在我想要的地方。

于 2013-04-16T09:06:29.440 回答