【发布时间】:2014-05-19 12:11:55
【问题描述】:
有没有什么方法可以在java中获取上传文件的类型(格式)?
我能够上传任何格式的文件。现在想要将文件类型存储到数据库中。
还有一件事我在上传表单中没有 file_type 字段列。只有在数据库中有 file_type 字段列。请帮助我
谢谢大家..
【问题讨论】:
-
我正在使用 spring、hibernate 和 mysql。请帮帮我
标签: java spring-mvc
有没有什么方法可以在java中获取上传文件的类型(格式)?
我能够上传任何格式的文件。现在想要将文件类型存储到数据库中。
还有一件事我在上传表单中没有 file_type 字段列。只有在数据库中有 file_type 字段列。请帮助我
谢谢大家..
【问题讨论】:
标签: java spring-mvc
您可以通过使用从 1+ 最后一个索引开始的子字符串来获取扩展名。 (如果存在)在字符串中
使用java.nio.file.Files.probeContentType 确定文件的MIME 类型。它返回一个String,它应该对你有用。来自docs:
public static String probeContentType(路径路径) 抛出 IOException
探测文件的内容类型。
此方法使用已安装的 FileTypeDetector 实现来 探测给定文件以确定其内容类型。每种文件类型 依次调用检测器的 probeContentType 来探测文件 类型。如果文件被识别,则返回内容类型。如果 任何已安装的文件类型检测器都无法识别该文件 然后调用系统默认文件类型检测器来猜测 内容类型。
对 Java 虚拟机的给定调用维护一个系统范围的 文件类型检测器列表。已加载已安装的文件类型检测器 使用由 服务加载器类。已安装的文件类型检测器使用加载 系统类加载器。如果找不到系统类加载器 然后使用扩展类加载器;如果扩展类加载器 找不到,则使用引导类加载器。文件类型 检测器通常通过将它们放在一个 JAR 文件中来安装 应用程序类路径或扩展目录中的JAR文件 包含一个名为的提供者配置文件 资源目录下的 java.nio.file.spi.FileTypeDetector META-INF/services,并且文件列出了一个或多个完全合格的 FileTypeDetector 的具体子类的名称为零 参数构造函数。如果定位或实例化的过程 安装的文件类型检测器失败,然后出现未指定的错误 抛出。安装的提供程序所在的顺序是 具体实现。
这个方法的返回值是a的值的字符串形式 多用途 Internet 邮件扩展 (MIME) 内容类型定义为 RFC 2045:多用途 Internet 邮件扩展 (MIME) 第一部分: Internet 消息正文的格式。该字符串保证为 可根据 RFC 中的语法进行解析。
参数: path - 要探测的文件的路径返回: 文件的内容类型,如果无法确定内容类型,则返回 null IOException - 如果发生 I/O 错误 SecurityException - 如果安装了安全管理器并且它拒绝文件类型检测器所需的未指定权限 实施。
【讨论】: