android获取url的标题,android – 如何在webview中单击URL时获取文件名

感谢Raghunandan的建议,我得到了答案.

在这里,我需要额外的调用来获取下载文件的标题信息.在标题部分,我得到了文件的名称.

因为我们可以使用这个URLUtil.guessFileName(url,null,null),但这将给出我的案例的调用方法的文件名我有这样的url

misc/dnload.php?t1=MzQ0MDA=&t2=MTY5NTUz&t3=MTY5NTUzMTMwMjEyMDNfcGhhcm1hY3kga2V5IGluZm8ucG5n&t4=MTMwMjEyMDM=

所以从上面的链接这将提取dnload.php作为文件名它不是原始文件名,我们下载它刚创建该文件的下载链接.

这里是使用这个的代码我们可以得到文件名它只是一个额外的调用来获取信息,但实际上我们下载,下载我已经使用android内置api到DownloadManager下载文件.

Content-Disposition this is the attribute in header section through which we can get the file name as in attachment form.

它将以这种方式返回信息Content-Disposition:attachment; filename =“fname.ext”所以现在只需要提取文件名

class GetFileInfo extends AsyncTask

{

protected String doInBackground(String... urls)

{

URL url;

String filename = null;

try {

url = new URL(urls[0]);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.connect();

conn.setInstanceFollowRedirects(false);

String depo = conn.getHeaderField("Content-Disposition");

String depoSplit[] = depo.split("filename=");

filename = depoSplit[1].replace("filename=", "").replace("\"", "").trim();

} catch (MalformedURLException e1) {

e1.printStackTrace();

} catch (IOException e) {

}

return filename;

}

@Override

protected void onPreExecute() {

super.onPreExecute();

}

@Override

protected void onPostExecute(String result) {

super.onPostExecute();

// use result as file name

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值