获取要存储在数据库中的文件类型

时间:2014-05-19 12:11:56

标签: java spring-mvc

有没有办法在java中获取上传文件的类型(格式)?

我可以上传任何格式的文件。现在想要将文件类型存储到数据库中。

我还没有上传表单中的file_type字段列。只有数据库中的file_type字段列。请帮助我

谢谢所有..

1 个答案:

答案 0 :(得分:0)

您可以使用从最后一个索引的1+开始的子字符串来获取扩展名。 (如果存在)在字符串

使用java.nio.file.Files.probeContentType确定文件的MIME类型。它会返回String,这对您有用。来自docs

  

public static String probeContentType(Path path)                                  抛出IOException

     

探测文件的内容类型。

     

此方法使用已安装的FileTypeDetector实现   探测给定文件以确定其内容类型。每种文件类型   反过来,调用检测器的probeContentType来探测文件   类型。如果文件被识别,则返回内容类型。如果   任何已安装的文件类型检测器都无法识别该文件   然后调用系统默认文件类型检测器来猜测   内容类型。

     

Java虚拟机的给定调用维护系统范围   文件类型检测器列表。已加载已安装的文件类型检测器   使用由...定义的服务提供者加载工具   ServiceLoader类。使用安装的文件类型检测器   系统类加载器。如果找不到系统类加载器   然后使用扩展类加载器;如果是扩展类加载器   无法找到然后使用bootstrap类加载器。文件类型   通常通过将探测器放置在探测器上的JAR文件中来安装探测器   应用程序类路径或扩展目录中的JAR文件   包含名为的provider-configuration文件   资源目录中的java.nio.file.spi.FileTypeDetector   META-INF / services,文件列出一个或多个完全限定的   FileTypeDetector的具体子类的名称为零   参数构造函数。如果找到或实例化的过程   安装的文件类型检测器失败然后出现未指定的错误   抛出。安装提供程序所在的顺序是   具体实施。

     

此方法的返回值是a值的字符串形式   多用途Internet邮件扩展(MIME)内容类型,由   RFC 2045:多用途Internet邮件扩展(MIME)第一部分:   互联网信息机构的格式。保证字符串   可以根据RFC中的语法进行解析。

     

参数:       path - 要探测的文件的路径返回:       文件的内容类型,如果无法确定内容类型,则返回null抛出:       IOException - 如果发生I / O错误       SecurityException - 如果安装了安全管理器,它将拒绝文件类型检测器所需的未指定权限   实施