2013-04-11 146 views
1

如何从给定的URL获得文件名PhoneGap从URL中获取文件名,而不使用JavaScript

在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 *。

我该怎么做?

回答

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

其中url是文件的完整路径。

+0

谢谢,但是如果URL在“/”之后没有文件名。 将可能获得文件名? 如果没有,我会用这个,谢谢。 – Burasuko 2013-04-11 10:41:14

+0

也许所有的网址都有文件名或其他东西后“/” – 2013-04-11 11:03:56

+0

谢谢:),我现在就用它:) – Burasuko 2013-04-11 11:31:49

2

用途:

url="file:///sdcard/data/com.protocolo/test1.pdf?getVar=value"; 
url.replace(/\?.*$/,"").replace(/.*\//,""); 
+0

我检查了这个:它的工作原理 – asdfasdfads 2014-04-09 16:39:37

0

我在我的URLs参数中添加。然后,在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); 

所以这样我可以得到为例.pdf:

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

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