- 浏览: 7189304 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (397)
- 架构研究 (44)
- 网络协议-TCP/HTTP (20)
- SPRING (23)
- HIBERNATE 3 (30)
- STRUTS 2 (20)
- Java/J2se (25)
- Servlet/Jsp (9)
- 开发工具IDE (10)
- WEB服务器 (17)
- 前端--Java Script (33)
- 前端--CSS (7)
- OS--Linux (31)
- OS--MAC OS (19)
- MySQL数据库 (19)
- Oracle数据库 (11)
- 项目管理工具 (12)
- 数据报表技术 (4)
- 图像处理技术 (10)
- 其它综合技术 (13)
- 权限管理 (1)
- MyBatis (1)
- 网络安全 (6)
- IO (21)
- PostgreSQL (2)
- Eclipse RCP (1)
- GWT (1)
- 算法 (3)
- Storm (2)
- zookeeper (3)
- 消息 (1)
最新评论
-
bukebuhao:
已解决,打开文件太多。ulimit -n 上次临时生效后再次s ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
bukebuhao:
ds重启后启动不了。报错信息如下,请大神帮助[2018-08- ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
墨上清:
感谢,看完有了一个完整的知识网络。
Spring MVC 教程,快速入门,深入分析 -
云卷云舒灬:
谢谢,学到很多
Spring MVC 教程,快速入门,深入分析 -
luozhy:
非常感谢非常感谢
Project Web Access ActiveX控件 安装
MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。
web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类。
Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,你可也去看一下。
最近在做用表单上传文件,想在服务端验证上传文件的类型,只允许上传GIF,JPG,ZIP, 我们有两种方法, 第一:检查文件的扩展名, 第二:检查文件的MIME类型 。
检查文件的扩展名的方法,很简单快捷, 但是 a.jsp 改名为 a.jpg能可以绕过检查上传了。
检查文件的MIME类型的方法,在IE7与Firefox下有一点区别(见下表), 有不同浏览器上传表现不一致。Firefox下ZIP与EXE文件的MIME类型同为application/octet-stream。
或许可以,先检查扩展名, 再检查MIME,不合格的文件不让上传。
这里也只是讨论,实际情况并不乐观。
表中例出的是在服务器端(tomcat5.5)接收不同浏览器上传的文件时,取得的MIME类型
用IE7上传 | 用Firefox3.0上传 | |
GIF |
image/gif |
image/gif |
JPG |
image/pjpeg |
image/jpeg |
ZIP | application/x-compressed | application/octet-stream |
JSP |
text/html |
text/html |
EXE | application/octet-stream | application/octet-stream |
常见MIME类型例表:
序号 |
内容类型 |
文件扩展名 |
描述 |
1 |
application/msword |
doc |
Microsoft Word |
2 |
application/octet-stream bin |
dms lha lzh exe class |
可执行程序 |
3 |
application/pdf |
|
Adobe Acrobat |
4 |
application/postscript |
ai eps ps |
PostScript |
5 |
appication/powerpoint |
ppt |
Microsoft Powerpoint |
6 |
appication/rtf |
rtf |
rtf 格式 |
7 |
appication/x-compress |
z |
unix 压缩文件 |
8 |
application/x-gzip |
gz |
gzip |
9 |
application/x-gtar |
gtar |
tar 文档 (gnu 格式 ) |
10 |
application/x-shockwave-flash |
swf |
MacroMedia Flash |
11 |
application/x-tar |
tar |
tar(4.3BSD) |
12 |
application/zip |
zip |
winzip |
13 |
audio/basic |
au snd |
sun/next 声音文件 |
14 |
audio/mpeg |
mpeg mp2 |
Mpeg 声音文件 |
15 |
audio/x-aiff |
mid midi rmf |
Midi 格式 |
16 |
audio/x-pn-realaudio |
ram ra |
Real Audio 声音 |
17 |
audio/x-pn-realaudio-plugin |
rpm |
Real Audio 插件 |
18 |
audio/x-wav |
wav |
Microsoft Windows 声音 |
19 |
image/cgm |
cgm |
计算机图形元文件 |
20 |
image/gif |
gif |
COMPUSERVE GIF 图像 |
21 |
image/jpeg |
jpeg jpg jpe |
JPEG 图像 |
22 |
image/png |
png |
PNG 图像 |
|
评论
UTF-8的XML文件(也就是文本文件)
Content-Disposition: form-data; name="file"; filename="C:\wxl.zip"
Content-Type: application/octet-stream
RAR文件
Content-Disposition: form-data; name="file"; filename="C:\AKM-084.txt"
Content-Type: text/plain
不是“不稳定”,是根本没有“绝对准确”的办法,就连那些Mime也是约定俗成的。
IE的做法,基本上主要是靠后缀,但他也会根据读取的文件头部内容“猜一下”真正的Mime,因此对于简单的 txt,应用广泛的jpg,gif,或自家的 office 文件什么的就比较准确了。
UTF-8的XML文件(也就是文本文件)
Content-Disposition: form-data; name="file"; filename="C:\wxl.zip"
Content-Type: application/octet-stream
RAR文件
Content-Disposition: form-data; name="file"; filename="C:\AKM-084.txt"
Content-Type: text/plain
Content-Disposition: form-data; name="file"; filename="c:\a.gif"
Content-Type: text/plain
ddd
这个也不靠谱的,你可以多试几种文件类型看看。
Content-Disposition: form-data; name="file"; filename="c:\a.gif"
Content-Type: text/plain
ddd
我如果把一个a.jsp文件改名为a.jpg上传,mime是text/html还是image/gif?难道浏览器会判断该文件的真正类型?
不是浏览器会判断该文件的真正类型, 而是上传后,在服务端判断.
yiyu说的情况是:你所取得的mime是浏览器提供的,包含在request。也就是这个数据源来自客户端的声明。而客户端是“按照文件扩展名来确定mime”,因此容易欺骗。
因此你说的 上传后 在服务器端 判断 ,除非你真的开了个 java.io.File 去读文件头,否则mime type也不是可信任的来源。
引号中内容我未求证。
我如果把一个a.jsp文件改名为a.jpg上传,mime是text/html还是image/gif?难道浏览器会判断该文件的真正类型?
不是浏览器会判断该文件的真正类型, 而是上传后,在服务端判断.
我如果把一个a.jsp文件改名为a.jpg上传,mime是text/html还是image/gif?难道浏览器会判断该文件的真正类型?
虽然没试过,但应该不会~ 浏览器应该没那么强大~
我如果把一个a.jsp文件改名为a.jpg上传,mime是text/html还是image/gif?难道浏览器会判断该文件的真正类型?
发表评论
-
memcached协议
2014-07-17 23:43 2691memcached协议 旧版:http://code.si ... -
TCP 的那些事儿
2014-07-08 11:08 31545(上) TCP是一个巨复 ... -
Java NIO 系列教程
2014-05-15 00:20 3014原文地址:http://tutorials.jenkov.c ... -
JAVA RMI线程模型及内部实现机制
2013-10-19 22:05 6355JAVA RMI线程模型及内部实现机制 1 RMI ... -
JAVA Socket超时浅析
2013-10-19 21:59 4602JAVA Socket超时浅析 ... -
Java Socket重要参数讲解
2013-10-19 21:18 2126Java Socket的api可能很多人会用,但是Java ... -
Java Socket参数详解
2013-10-19 20:45 6067一、构造Socket Socket的构造方法有以下几种重 ... -
TCP/IP Socket心跳机制so_keepalive的三个参数详解
2013-10-19 20:32 39342socket心跳机制so_keepalive的三个参数详解 ... -
Thrift概述
2013-10-17 20:54 17436Thrift是跨语言的RPC框架,现在是一个Apache的顶 ... -
JDK7新特性之AIO
2012-12-20 21:54 7533JDK7中新加入的文件和网络io特性称为nio2(new ... -
BIO, NIO, AIO(转)
2012-12-20 21:29 14870NIO通常采用Reactor模式,AIO通常采用Proa ... -
kkkkkkkkkkkkkk
2012-12-02 01:44 0kkkkkkkkkkkk -
同步/异步与阻塞/非阻塞的区别--多线程编程基础
2012-12-02 01:41 8739在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用 ... -
kkkkkkkkkkkkkk
2012-12-02 01:26 0kkkkkkkkkkk -
Java Socket 几个重要的TCP/IP选项解析(二)
2012-12-02 01:25 56391. SO_LINGER/ SO_REUSEAD ... -
Java Socket 几个重要的TCP/IP选项解析(一)
2012-12-02 00:45 45011Socket选择可以指定Socket类发送和接受数 ... -
TCP/IP TIME_WAIT状态原理
2012-12-01 22:46 172923TIME_WAIT状态原理 --------------- ... -
TCP状态转移
2012-12-01 21:25 2247TCP状态转移,一共存在1 ... -
REST和REST的四个级别
2009-05-04 17:18 4346REST(表述性状态转移 ... -
HTTP协议
2009-04-20 19:26 3067http请求由3部分组成1 请求行2 消息报头3 请求正文 ...
相关推荐
因此,Web应用需要对上传文件的MIME-Type进行验证,以确保上传的文件类型安全。 在 PHP 中,可以使用 $_FILE['upload_file']['type'] 获取上传文件的MIME-Type类型。上传文件的MIME-Type类型可以在表单中定义,例如...
根据提供的文件信息,我们可以深入探讨MIME类型(Multipurpose Internet Mail Extensions)的相关知识点。MIME类型主要用于描述网络文件的格式,通常在网络传输中用于告诉接收方如何解释数据。以下是对标题、描述及...
赠送Maven依赖信息文件:httpmime-4.5.13.pom; 包含翻译后的API文档:httpmime-4.5.13-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpmime:4.5.13; 标签:apache、...
压缩文件类MIME类型 - **application/x-gzip**:GZIP是一种文件压缩格式,常用于网页资源的压缩传输,减少网络带宽使用。 - **application/x-tar**:TAR是用于打包多个文件和目录的归档格式,通常与GZIP或BZIP2...
赠送Maven依赖信息文件:httpmime-4.5.2.pom; 包含翻译后的API文档:httpmime-4.5.2-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpmime:4.5.2; 标签:apache、...
3. **客户端和服务端配置**:在服务器端配置正确的MIME类型,同时确保客户端能够正确处理这些类型的数据。 #### 3. 自定义MIME类型的注意事项 - **兼容性**:确保自定义的MIME类型在不同的浏览器和操作系统中都能...
通过这些映射,服务器能够根据不同的文件类型发送相应的MIME-Type头,从而确保客户端正确地解析和处理这些文件。 #### 总结 `web.xml`中的`mime-mapping`元素是Java Web应用中非常关键的一部分,它负责定义文件...
MIME(Multipurpose Internet Mail Extensions)类型是一种标准,用于定义在网络上传输的数据类型。这个标准在互联网上广泛使用,不仅限于电子邮件,还涉及到HTTP协议、文件上传、Web应用程序等多个领域。MIME类型是...
《Java解析vCard:深入理解mime-dir-j-vcard4j》 在信息技术领域,数据交换是常见的需求之一,尤其在个人联系信息管理方面。vCard便是一种标准格式,用于存储和共享电子名片。本文将围绕Java解析vCard的库——mime-...
在IIS(Internet Information Services)服务器上正确配置MIME类型对于确保用户能够正常访问和下载各种类型的文件至关重要。例如,如果站点上的视频无法播放或特定文件类型无法被正确识别,那么可能就是由于MIME类型...
- **多用途**:除了网页,MIME类型也用于电子邮件、文件上传下载等场景,确保数据的正确传递和处理。 **3. MIME类型分类** 常见的MIME类型有: - **文本类型**:如 "text/plain"(纯文本)、"text/html"(HTML)、...
总的来说,`mime-types`是Ruby开发中处理MIME类型不可或缺的工具,尤其在处理HTTP请求、响应、上传文件等内容时,能确保数据的正确传输和处理。了解和熟练使用这个库,有助于提升Web应用的安全性和功能性。
赠送Maven依赖信息文件:httpmime-4.5.13.pom; 包含翻译后的API文档:httpmime-4.5.13-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.httpcomponents:httpmime:4.5.13; 标签:apache、httpcomponents...
mimetype-js概述我发现继续为MIME类型制作这些文件扩展名查找表。 是时候把它放在一个模块中来省去麻烦了。例子一般情况var mimetype = require ( 'mimetype' ) ;console . log ( mimetype . lookup ( "myfile.txt" ...
赠送Maven依赖信息文件:httpmime-4.5.pom; 包含翻译后的API文档:httpmime-4.5-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.httpcomponents:httpmime:4.5; 标签:apache、httpcomponents、...
赠送Maven依赖信息文件:httpmime-4.5.2.pom; 包含翻译后的API文档:httpmime-4.5.2-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.httpcomponents:httpmime:4.5.2; 标签:apache、httpcomponents、...
标题与描述均指向了一个主题——“最全的文件扩展名-MIME类型对照表”,这实际上是一份详尽的文档,旨在列举各种文件扩展名及其对应的MIME类型。MIME(Multipurpose Internet Mail Extensions)类型是一种标准,用于...
赠送Maven依赖信息文件:httpmime-4.5.12.pom; 包含翻译后的API文档:httpmime-4.5.12-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpmime:4.5.12; 标签:apache、...
MIME(Multipurpose Internet Mail Extensions)是一种互联网标准,最初设计用于增强电子邮件的处理能力,使其能够包含非ASCII字符以及各种媒体类型,如图像、音频、视频等。随着互联网的发展,MIME的应用范围已经...
赠送Maven依赖信息文件:httpmime-4.5.pom; 包含翻译后的API文档:httpmime-4.5-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.httpcomponents:httpmime:4.5; 标签:apache、...