gpt4 book ai didi

java - getContentType 方法始终返回 'application/force-download'

转载 作者:行者123 更新时间:2023-12-02 07:02:40 26 4
gpt4 key购买 nike

我有一个可以下载的文件 URL。它看起来像这样:

 http://<server>/recruitment-mantis/plugin.php?page=BugSynchronizer/getfile&fileID=139&filehash=3e7a52a242f90c23539a17f6db094d86

如何获取该文件的内容类型?我必须管理,在这种情况下很简单:

   URL url = new URL(stringUrl);

URLConnection urlConnection = url.openConnection();
urlConnection.connect();

String urlContent = urlConnection.getContentType();

返回每个文件中的application/force-download内容类型(无论是jpg还是pdf文件)。我想这样做是因为我想设置下载文件的扩展名(可以是不同的)。如何“绕过”此 application/force-download 内容类型?预先感谢您的帮助。

最佳答案

检查urlConnection.getHeaderField("Content-Disposition")文件名。通常该 header 用于多部分内容中的附件,但检查一下也没什么坏处。

如果该 header 不存在,您可以将 URL 保存到临时文件,并使用 probeContentType 获取有意义的 MIME 类型:

Path tempFile = Files.createTempFile(null, null);
try (InputStream urlStream = urlConnection.getInputStream()) {
Files.copy(urlStream, tempFile, StandardCopyOption.REPLACE_EXISTING);
}
String mimeType = Files.probeContentType(tempFile);

请注意,如果 probeContentType 无法确定文件的类型,它可能会返回 null。

关于java - getContentType 方法始终返回 'application/force-download',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com