【问题标题】:How to get content type of a file which has no extension? [duplicate]如何获取没有扩展名的文件的内容类型? [复制]
【发布时间】:2014-02-07 17:51:20
【问题描述】:

我保存了所有类型的文件,没有扩展名。通读Java代码时,如何获取文件的内容类型?

File file = "/admin/sun"
byte[] pdfByteArray = FileUtils.readFileToByteArray(file);
if (fileName.endsWith(".pdf")) {
    response.setContentType("application/pdf");
} else {
    response.setContentType("image/jpeg");
}
response.getOutputStream().write(pdfByteArray);
response.getOutputStream().flush();

如果文件扩展名 .pdf 或 .jpeg 可以正常工作,那么如果没有扩展名,如何获取内容类型?

【问题讨论】:

    标签: java mime-types file-type


    【解决方案1】:

    在 jdk7 中使用Files.probeContentType(path)。或者自己检测文件类型,根据不同的文件类型规范。说pdfhttp://www.adobe.com/devnet/pdf/pdf_reference.html

    【讨论】:

    • 我用一些 csv 文件(带扩展名)进行测试,方法返回 text/csv,但如果我从文件名中删除扩展名,它就不起作用。它返回文本/纯文本
    【解决方案2】:

    你最好不要依赖扩展。查找文件的 MIME 类型。

    看到这个问题:Getting A File's Mime Type In Java

    您必须使用Files.probeContentType(path) 读取mime 类型。

    更多相关信息mime types

    【讨论】:

    • 这应该是一场势均力敌的投票。
    • 我想明确一点,他必须依赖哑剧类型以及如何使用它。但我已经投票赞成关闭
    • 那作为评论会更好。一次近距离投票,一条评论 - 不仅仅是一个“答案”,它本身并没有真正回答问题(直到编辑),而只是重定向......
    • 是的。我赞成
    猜你喜欢
    • 2011-05-27
    • 2011-07-29
    • 1970-01-01
    • 2014-05-30
    • 2014-06-14
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多