我正在使用这段代码稍后从URL下载一个文件。
URL url = new URL("http://smarthome-de.censored.net/Installer.zip");
URLConnection conn = url.openConnection();
int size = conn.getContentLength();
String type = conn.getContentType();有办法从URL中获取文件名吗?我可以将"Installer.zip“存储到一个字符串中,而不需要得到这个值,因为它是已知的。
我发现getContentType()给了我类型。遗憾的是,我找不到任何方法来确定这个名字。
发布于 2017-04-08 23:02:35
您可以从Content-Disposition头获取文件名:
String contentDisposition = conn.getHeaderField("Content-Disposition");请注意,此标头由服务器设置,不能保证出现。下载文件的HTTP客户机使用Content-Disposition,如果它存在或默认到URL的最后一部分,在您的示例中是Installer.zip。
内容处理标题内容类似于:
Content-Disposition: attachment; filename="Installer.zip"您必须解析标头值以提取文件名部分。关于更多细节,您可以在这里查看:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
https://stackoverflow.com/questions/43301103
复制相似问题