2013-04-11 39 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 

,然後我可以下載它,並保存在我想要的地方。

相關問題