如何从PhoneGap中的给定URL
获取文件名?
在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 *
我该怎么做?
答案 0 :(得分:2)
String fileName = url.substring(url.lastIndexOf('/') + 1);
其中url
是文件的完整路径。
答案 1 :(得分:2)
使用:
url="file:///sdcard/data/com.protocolo/test1.pdf?getVar=value";
url.replace(/\?.*$/,"").replace(/.*\//,"");
答案 2 :(得分:0)
这基本上是在问How to get the file name from a full path using JavaScript?。在这里,解决方案是:
var filename = url.replace(/^.*[\\\/]/, '');
答案 3 :(得分:0)
我在网址参数中添加了。然后在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
然后我可以下载它,并将其保存在我想要的地方。