有没有办法在java中获取上传文件的类型(格式)?
我可以上传任何格式的文件。现在想要将文件类型存储到数据库中。
我还没有上传表单中的file_type字段列。只有数据库中的file_type字段列。请帮助我
谢谢所有..
答案 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 - 如果安装了安全管理器,它将拒绝文件类型检测器所需的未指定权限 实施