当我们在页面中提供该文件的链接时,如何获取我们上传到服务器上的文件名?
我正在做的是,我在 webview 中提供带有文件链接的数据,因此每当用户单击链接时都需要从服务器下载,因为我已经从服务器下载了该文件,但问题是无法使用 DownloadManager 获取其确切类型和名称。我想要这样
请参阅上面,我在 test_androt 中给出了我的文件的链接,当我单击它时,它将给出带有文件名选项的 dailog,当用户单击 WebView URL 链接时,我不知道如何实现此文件名。
编辑
抱歉忘记提及我的网址如下所示
misc/dnload.php?t1=MzQ0MDA=&t2=MTY5NTUz&t3=MTY5NTUzMTMwMjEyMDNfcGhhcm1hY3kga2V5IGluZm8ucG5n&t4=MTMwMjEyMDM=
您可以简单地解析 url 并获取最后一个“/”后的文本并将其作为文件名,或者您可以使用以下命令
URLUtil.guessFileName(url, contentDisposition, mimetype);
如下所示,因为我在 DownloadListener 中使用了它:
//this stuff goes inside your DownloadListener
@Override
public void onDownloadStart(final String url, String userAgent,final String contentDisposition, final String mimetype, long contentLength)
{
String fileName = URLUtil.guessFileName(url, contentDisposition, mimetype); //returns a string of the name of the file THE IMPORTANT PART
//proceed with download
}
如果您不想在 DownloadListener 中使用它,则可以在没有 contentDisposition 或 mimetype 的情况下使用它,只需为除 url 之外的每个参数传递“null”(也传递 url)。
编辑:只有当您有一个嵌入文件名的网址时,这才有效。如果您正在寻找更简单的方法,请参阅上面 Pratik 的答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)