java - 如何通过Java从其下载链接中获取文件扩展名?

标签 java httpurlconnection file-extension

我想从他们的下载链接中获取一些文件的扩展名。

下载链接不包含其文件的扩展名。例如,链接如下所示:

http://yourshot.nationalgeographic.com/u/fQYSUbVfts-T7odkrFJckdiFeHvab0GWOfzhj7tYdC0uglagsDNfNYI4FFesWV5zeSPtcfpyHzKZI7dHjkluwtIYNkXOGmjh43Ktdn0VeBWhQ-9l2kheOPt5N2TM3yPEW4tTrtFFqniatwxxhbqsc78IU2pBaqWwyEVLeQx64zSda2CNGmUpSxyte_tamVoIk3y4zXisQ-vjmMp6n1BAB3nbUVlwWg/

我尝试使用 myHttpUrlConnection.getContentType() 获取文件扩展名,但结果不是我想要的结果。

有些下载链接会返回一个短语,例如 “text/plain”“application-octet-stream”multipart/form-data ,。但我只想要正确清晰的类型,如 rarmp4txtjpegmkv zippngapkmp3

最佳答案

你不能那样做。 getContentType()方法简单:

Returns the value of the content-type header field.

在大多数情况下(虽然不能保证)与文件扩展名/文件类型相关,例如 application/pdf 表示该 URL 下有一个 PDF 文件。

您列出的每个带扩展名的文件类型(rar、mp4、txt、jpeg、mkv、zip、png、apk、mp3)都有另一种结构。要可靠地执行您想执行的操作,您必须首先下载整个文件,然后根据内容检查其类型。

您可以使用的库的一个很好的例子是 Apache Tika .

关于java - 如何通过Java从其下载链接中获取文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47956277/

相关文章:

java - HttpURLConnection 超时默认值

java - 如何在 Java 应用程序中显示任何文件格式的图像?

java - 字体大小未反射(reflect)在 IText 中

java - 将 C++ 校验和函数转换为 Java

java - ViewPager2#onpageselect StackOverflowError

java - 带有非系统范围 CookieHandler 的 HttpURLConnection

java - Google Cloud Storage API 和可恢复上传返回 null Location header

Javascript - 从base64图像获取扩展

jsp - 创建扩展名为 .jsp 或 .xhtml 或 .jsf 的 JSF 页面有什么区别

java - 从 JFrame 启动 Applet