我想从他们的下载链接中获取一些文件的扩展名。
下载链接不包含其文件的扩展名。例如,链接如下所示:
http://yourshot.nationalgeographic.com/u/fQYSUbVfts-T7odkrFJckdiFeHvab0GWOfzhj7tYdC0uglagsDNfNYI4FFesWV5zeSPtcfpyHzKZI7dHjkluwtIYNkXOGmjh43Ktdn0VeBWhQ-9l2kheOPt5N2TM3yPEW4tTrtFFqniatwxxhbqsc78IU2pBaqWwyEVLeQx64zSda2CNGmUpSxyte_tamVoIk3y4zXisQ-vjmMp6n1BAB3nbUVlwWg/
我尝试使用 myHttpUrlConnection.getContentType()
获取文件扩展名,但结果不是我想要的结果。
有些下载链接会返回一个短语,例如 “text/plain”
、“application-octet-stream”
、multipart/form-data
,…
。但我只想要正确清晰的类型,如 rar
、mp4
、txt
、jpeg
、mkv
、zip
、png
、apk
、mp3
、…
。
最佳答案
你不能那样做。 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/