gpt4 book ai didi

java - 确定我正在下载的文件的 MIME 类型

转载 作者:行者123 更新时间:2023-12-01 14:47:51 24 4
gpt4 key购买 nike

我正在尝试使用以下代码下载文件。我需要确定正在下载的文件的文件名和 MIME 类型。我下载的 URL 不包含文件名。我查看了与下面使用的缓冲流相关的方法,但没有看到任何方法可以做到这一点。

    con = (HttpURLConnection) url.openConnection();

//authenticate this request
if (passwordAuthentication != null) {
String auth = passwordAuthentication.getUserName()+":"+passwordAuthentication.getPassword();
con.setRequestProperty("Authentication", Base64.encodeBase64(auth.getBytes()).toString());
}

BufferedInputStream bis = new BufferedInputStream(con.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file.getName()));
while ((i = bis.read()) != -1) {
bos.write(i);
}
bos.flush();
bis.close();

我发现我可以通过 String contentType = con.getHeaderField("Content-Type"); 获取它,但返回 text/html不是实际下载文件的 ContentType。

编辑:这不是一个重复的问题,其他方法没有提供解决方案,如下所述。

我现在尝试保存不带文件扩展名的文件并使用 MagicMatch match = Magic.getMagicMatch(file, true);但它返回 text/plain 。我猜这是因为我保存时没有使用文件扩展名。

最佳答案

在 Java 7 中,您现在可以使用 Files.probeContentType(path)

关于java - 确定我正在下载的文件的 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239004/

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