2024年5月29日发(作者:)

网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php

特点来展示的,个人认为php在数组方面的优异功能更有特色),学php的人都知道文件上传

怎么做,但很多人在编程中却可能忽视了一些细节问题,那就是文件的类型(MIME)。在表

单将文件提交给php做处理之前,浏览器会先解析识别一边是什么类型的文件,之后进入

php处理环节,php又会去识别解析此文件的原始类型(并不是说你改成什么后缀就是什么

文件)。在这个过程中会有一些浏览器兼容,更准确来说是文件类型解析标识不一致的问题。

这样在php处理Post过来的文件类型时就需要根据不同浏览器做更多的判断,最典型的就

是IE和火狐下的区别。

php上传图片文件(gif,jpg,bmp,png,psd,ico)

php上传压缩文件(rar,7z,zip)

php上传可执行文件(exe)

php上传视频文件,音乐文件,歌词文件(avi,rmvb,3gp,flv,mp3,wav,krc,lrc)

php上传文本文件和文档文件(word->doc,excel->xls,幻灯片->ppt,pdf,chm)

php上传数据库文件(access文件,sql文件,con文件,日志文件log, dat文件)

php上传网页文件,脚本文件,字体文件(ini,php,html,htm,字体文件:ttf,fon, js ,xml)

php上传其他文件(class类文件,dll动态加载库文件)

史上最完全oophper亲测版php文件上传之文件类型对应表,ie,火狐各一份。

ie

id

0

1

2

3

4

5

6

7

8

火狐

后缀名

gif

jpg

png

bmp

psd

ico

rar

zip

7z

php识别出的文件类型

image/gif

image/pjpeg

image/x-png

image/bmp

application/octet-stream

image/x-icon

application/octet-stream

application/x-zip-compressed

application/octet-stream

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

exe

avi

rmvb

3gp

flv

mp3

wav

krc

lrc

txt

doc

xls

ppt

pdf

chm

mdb

sql

con

log

dat

ini

php

html

htm

ttf

fon

js

xml

dll

class

application/octet-stream

video/avi

application/-realmedia-vbr

application/octet-stream

application/octet-stream

audio/mpeg

audio/wav

application/octet-stream

application/octet-stream

text/plain

application/msword

application/-excel

application/-powerpoint

application/pdf

application/octet-stream

application/msaccess

text/plain

application/octet-stream

text/plain

text/plain

application/octet-stream

application/octet-stream

text/html

text/html

application/octet-stream

application/octet-stream

text/html

text/xml

application/octet-stream

application/java