繁体   English   中英

在JavaScript中从没有它的URL获取文件名

[英]Get filename from URL without it in JavaScript

如何从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 *。

我怎么做?

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

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

采用:

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

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

var filename = url.replace(/^.*[\\\/]/, '');

我在我的网址参数中添加了。 然后在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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM