文件类型识别的方法有很多,例如使用URLConnection对象的getContentType方法获得:
File file = new File(“文件路径”);
String type = file.toURL().openConnection().getContentType();
其他方法可参考资料:
http://www.rgagnon.com/javadetails/java-0487.html中介绍的方法针对不同形式的数据进行解析。
若数据是字节数组时,可参考程序:
/**
* 根据图片的bits字节数组中的数据,识别图片文件类型,再根据prefix内容构造一个适当的文件名称
* @param bits 图片字节数组
* @param prefix 用于构造文件名称的前缀串
* @return 0元素存放文件名称,1元素存放文件类型
*/
public static String [] imgBitsDeal(byte[]bits, String prefix){
String [] rt = new String[2];
// snippet for JMimeMagic lib
// http://sourceforge.net/projects/jmimemagic/
Magic parser = new Magic() ;
MagicMatch match = null;
try {
match = parser.getMagicMatch(bits);
rt[1] = match.getMimeType();//文件类型
rt[0] = prefix + "." + match.getExtension();//构造文件名称(含扩展名)
// System.out.println(match.getMimeType()) ;
// System.out.println(match.getExtension()) ;
} catch (Exception e) {
// TODO Auto-generated catch block
rt[0] = prefix + "." + "png"; //默认文件名
rt[1] = "image/png"; //默认文件类型
e.printStackTrace();
}
return rt;
}
上面的程序需要jmimemagic-0.1.0.jar包支持,见附件
文件识别简单介绍:
一般来说有两种途径识别文件的类型:
1.通过文件的扩展名识别,这种方式能对文件进行简单直观的判别,不能进行本质性的判别,一旦文件扩展名被修改了,就会判断失误;
2.通过文件数据的头部分进行识别,主流文件都在文件头记录了一些特征信息,可以利用这些特征信息对文件类型进行判别,这种方式较为本质些,可信度较高。
谈到第二中方式,有两种常见实现方法,第一种:读取文件头信息,下载文件类型特制信息映射表,拿头信息和映射表进行匹配,可以得到常见文件类型信息;第二种:不用自己去匹配信息,而是采用第三方提供现成的包来解析文件类型,这样能节省很多时间,上面介绍的就是这种方法。
分享到:
相关推荐
在IT行业中,MimeType(MIME类型)是一种标准,用于标识互联网上的文件类型和编码方式。MimeType文件校验是网络服务中常见的操作,特别是在处理用户上传的文件时,它能确保服务器正确地解析和处理文件。本示例"Mime...
5. 扩展性考虑:为了增加类的灵活性,可以添加配置选项,让用户自定义当无法识别文件类型时返回的默认MIME类型。 以下是一个简单的`MimeTypeDetector`类的示例: ```php class MimeTypeDetector { public ...
MIME类型在互联网中扮演着至关重要的角色,它不仅帮助我们识别文件的格式,还确保了不同系统之间能够正确地交换和处理数据。理解各种常见的MIME类型对于开发人员来说是非常重要的,因为它有助于确保数据在网络上传输...
4. 安全性:通过正确地设置和识别MIME类型,系统可以降低安全风险,防止例如不正确的文件类型引发的跨站脚本攻击(XSS)或文件上传漏洞。 为了确保MIME类型的有效使用,开发者需要遵循一些最佳实践,例如: - 确保...
在IIS(Internet Information Services)中,配置文件访问是服务器管理的重要部分,它涉及到如何处理...当遇到新类型的文件需要支持时,查找并添加相应的MIME类型到IIS配置中,将使服务器能够正确识别并处理这些文件。
在开发中,我们可能会使用各种工具来处理MIME类型,如Apache或Nginx服务器配置文件中设定MIME类型,或者在前端开发中使用库如FileReader API读取文件并检查其MIME类型。此外,有些在线工具可以帮助识别或转换MIME...
MIME类型由两部分组成:类型(type)和子类型(subtype)。类型通常分为“应用”(application)、“音频”(audio)、“图像”(image)、“视频”(video)、“文本”(text)和“消息”(message)。子类型则更...
为了更准确地识别文件类型,可以考虑使用开源库,如Apache Tika或Mime-Type Detector。这些库已经内置了大量的文件类型检测规则,能处理更多的文件格式。 总的来说,通过Java读取文件头内容判断文件类型是一种实用...
通过理解并正确使用MIME类型,开发者可以确保文件在网络上传输时被正确识别和处理,这对于Web服务、邮件系统以及各种互联网应用程序的正常运行至关重要。`mime-types.html` 和 `mime-types.xls` 提供的资源对于...
mimeType := mime.TypeByExtension(".jpg") // mimeType 的值将会是 "image/jpeg" ``` 4. **注册MIME类型**:如果遇到Go内置的`mime`包未包含的MIME类型,我们可以使用`mime.AddType`进行自定义注册。例如: ``...
在C#编程中,识别文件类型通常有两种方法:一种是通过检查文件的后缀名,另一种是通过读取文件的二进制数据并分析其内容。标题“C# 读取文件类型,不是文件后缀”暗示我们需要关注第二种方法,即不依赖文件扩展名来...
MIME类型由两部分组成:主类型(major type)和子类型(subtype),之间用斜线“/”分隔。例如,"application/pdf"表示PDF文档。 以下是一些常见的MIME类型及其对应的文件扩展名和用途: 1. `application/acad` - ...
在编程中,例如在Node.js中,可以使用`fs`和`mimetype`库来获取文件类型: ```javascript const fs = require('fs'); const mime = require('mime-types'); fs.readFile('example.txt', 'binary', (err, data) => ...
Java 读取图片的mimeType的方法 ...这种方法可以通过读取文件的头部信息来判断图片的格式,从而获取图片的mimeType。这种方法可以避免通过文件后缀名来判断图片格式的不可靠性,提高了图片上传的安全性和可靠性。
- **内容识别**:MIME类型允许服务器告知客户端(如浏览器)传输的数据类型,确保正确解析。 - **安全控制**:通过指定MIME类型,可以防止浏览器错误地执行非预期的代码,如阻止JavaScript的恶意注入。 - **多用途**...
在浏览器中,MIME 类型是通过 Content-Type header 来定义的。例如,假设你要传送一个 Microsoft Excel 文件到客户端,那么这时的 MIME 类型就是“application/vnd.ms-excel”。在大多数实际情况中,这个文件然后将...
libmagic库是一个广泛使用的工具,能够通过分析文件的头部信息来识别文件的类型,它支持多种操作系统,包括Unix、Linux和macOS等。这个库在Unix环境中以`file`命令的形式被用户熟知,可以方便地在命令行中查看未知...
因此,`mimetype_description`可能提供了便捷的方法来解析、验证或生成MIME类型,帮助开发者更轻松地处理与数据格式相关的任务。它可能包含了各种MIME类型的枚举、转换功能,或者提供了一种方式来获取特定MIME类型的...
因此,这个"MIME-Types-1.32"包可能是解决这个问题的关键,它提供了一个全面的MIME类型列表,可以确保服务器能够识别和处理各种类型的文件。 标签"MIME, linux, apache, nginx"进一步强调了这个压缩包与Linux操作...
### MIME Type 常见的格式类型...这些MIME类型在Web开发、电子邮件系统以及其他网络应用中非常有用,能够帮助识别和处理不同的文件格式。需要注意的是,由于MIME规范处于不断发展中,上述列表仅供参考,并非详尽无遗。