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

问题描述 投票:3回答:1

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

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

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

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

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

java httpurlconnection file-extension
1个回答
3
投票

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

返回content-type头字段的值。

在大多数情况下(尽管不保证)与文件扩展名/文件类型相关,例如application/pdf意味着该URL下有一个PDF文件。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.