網上有很多php文件上傳的類,文件上傳處理是php的一個特色(至少手冊上是將此作為php特點來展示的,個人認為php在數組方面的優異功能更有特色),學php的人都知道文件上傳怎麼做,但很多人在編程中卻可能忽視了一些細節問題,那就是文件的類型(MIME)。在表單將文件提交給php做處理之前,浏覽器會先解析識別一邊是什麼類型的文件,之後進入php處理環節,php又會去識別解析此文件的原始類型(並不是說你改成什麼後綴就是什麼文件)。在這個過程中會有一些浏覽器兼容,更准確來說是文件類型解析標識不一致的問題。這樣在php處理Post過來的文件類型時就需要根據不同浏覽器做更多的判斷,最典型的就是IE和火狐下的區別。
php上傳圖片文件(gif,jpg,bmp,png,psd,ico)
史上最完全oophper親測版php文件上傳之文件類型對應表,ie,火狐各一份。
ie
火狐
id |
後綴名 |
php識別出的文件類型 |
0
gif
image/gif
1
jpg
image/jpeg
2
png
image/png
3
bmp
image/bmp
4
psd
application/octet-stream
5
ico
image/x-icon
6
rar
application/octet-stream
7
zip
application/zip
8
7z
application/octet-stream
9
exe
application/octet-stream
10
avi
video/avi
11
rmvb
application/vnd.rn-realmedia-vbr
12
3gp
application/octet-stream
13
flv
application/octet-stream
14
mp3
audio/mpeg
15
wav
audio/wav
16
krc
application/octet-stream
17
lrc
application/octet-stream
18
txt
text/plain
19
doc
application/msword
20
xls
application/vnd.ms-excel
21
ppt
application/vnd.ms-powerpoint
22
pdf
application/pdf
23
chm
application/octet-stream
24
mdb
application/msaccess
25
sql
application/octet-stream
26
con
application/octet-stream
27
log
text/plain
28
dat
application/octet-stream
29
ini
application/octet-stream
30
php
application/octet-stream
31
html
text/html
32
htm
text/html
33
ttf
application/octet-stream
34
fon
application/octet-stream
35
js
application/x-javascript
36
xml
text/xml
37
dll
application/octet-stream
38
dll
application/octet-stream
id |
後綴名 |
php識別出的文件類型 |
0
gif
image/gif
1
jpg
image/pjpeg
2
png
image/x-png
3
bmp
image/bmp
4
psd
application/octet-stream
5
ico
image/x-icon
6
rar
application/octet-stream
7
zip
application/x-zip-compressed
8
7z
application/octet-stream
9
exe
application/octet-stream
10
avi
video/avi
11
rmvb
application/vnd.rn-realmedia-vbr
12
3gp
application/octet-stream
13
flv
application/octet-stream
14
mp3
audio/mpeg
15
wav
audio/wav
16
krc
application/octet-stream
17
lrc
application/octet-stream
18
txt
text/plain
19
doc
application/msword
20
xls
application/vnd.ms-excel
21
ppt
application/vnd.ms-powerpoint
22
pdf
application/pdf
23
chm
application/octet-stream
24
mdb
application/msaccess
25
sql
text/plain
26
con
application/octet-stream
27
log
text/plain
28
dat
text/plain
29
ini
application/octet-stream
30
php
application/octet-stream
31
html
text/html
32
htm
text/html
33
ttf
application/octet-stream
34
fon
application/octet-stream
35
js
text/html
36
xml
text/xml
37
dll
application/octet-stream
38
class
application/java* application/octet-stream //應用程序
323 text/h323
acx application/internet-property-stream
ai application/postscript
aif audio/x-aiff
aifc audio/x-aiff
aiff audio/x-aiff
asf video/x-ms-asf
asr video/x-ms-asf
asx video/x-ms-asf
au audio/basic
avi video/x-msvideo
axs application/olescript
bas text/plain
bcpio application/x-bcpio
bin application/octet-stream
bmp image/bmp
c text/plain
cat application/vnd.ms-pkiseccat
cdf application/x-cdf
cer application/x-x509-ca-cert
class application/octet-stream
clp application/x-msclip
cmx image/x-cmx
cod image/cis-cod
cpio application/x-cpio
crd application/x-mscardfile
crl application/pkix-crl
crt application/x-x509-ca-cert
csh application/x-csh
css text/css
dcr application/x-director
der application/x-x509-ca-cert
dir application/x-director
dll application/x-msdownload
dms application/octet-stream
doc application/msword
dot application/msword
dvi application/x-dvi
dxr application/x-director
eps application/postscript
etx text/x-setext
evy application/envoy
exe application/octet-stream
fif application/fractals
flr x-world/x-vrml
gif image/gif
gtar application/x-gtar
gz application/x-gzip
h text/plain
hdf application/x-hdf
hlp application/winhlp
hqx application/mac-binhex40
hta application/hta
htc text/x-component
htm text/html
html text/html
htt text/webviewhtml
ico image/x-icon
ief image/ief
iii application/x-iphone
ins application/x-internet-signup
isp application/x-internet-signup
jfif image/pipeg
jpe image/jpeg
jpeg image/jpeg
jpg image/jpeg
jpg image/pjpeg
js application/x-javascript
latex application/x-latex
lha application/octet-stream
lsf video/x-la-asf
lsx video/x-la-asf
lzh application/octet-stream
m13 application/x-msmediaview
m14 application/x-msmediaview
m3u audio/x-mpegurl
man application/x-troff-man
mdb application/x-msaccess
me application/x-troff-me
mht message/rfc822
mhtml message/rfc822
mid audio/mid
mny application/x-msmoney
mov video/quicktime
movie video/x-sgi-movie
mp2 video/mpeg
mp3 audio/mpeg
mpa video/mpeg
mpe video/mpeg
mpeg video/mpeg
mpg video/mpeg
mpp application/vnd.ms-project
mpv2 video/mpeg
ms application/x-troff-ms
mvb application/x-msmediaview
nws message/rfc822
oda application/oda
p10 application/pkcs10
p12 application/x-pkcs12
p7b application/x-pkcs7-certificates
p7c application/x-pkcs7-mime
p7m application/x-pkcs7-mime
p7r application/x-pkcs7-certreqresp
p7s application/x-pkcs7-signature
pbm image/x-portable-bitmap
pdf application/pdf
pfx application/x-pkcs12
pgm image/x-portable-graymap
pko application/ynd.ms-pkipko
pma application/x-perfmon
pmc application/x-perfmon
pml application/x-perfmon
pmr application/x-perfmon
pmw application/x-perfmon
png image/x-png
pnm image/x-portable-anymap
pot, application/vnd.ms-powerpoint
ppm image/x-portable-pixmap
pps application/vnd.ms-powerpoint
ppt application/vnd.ms-powerpoint
prf application/pics-rules
ps application/postscript
pub application/x-mspublisher
qt video/quicktime
ra audio/x-pn-realaudio
ram audio/x-pn-realaudio
ras image/x-cmu-raster
rgb image/x-rgb
rmi audio/mid
roff application/x-troff
rtf application/rtf
rtx text/richtext
scd application/x-msschedule
sct text/scriptlet
setpay application/set-payment-initiation
setreg application/set-registration-initiation
sh application/x-sh
shar application/x-shar
sit application/x-stuffit
snd audio/basic
spc application/x-pkcs7-certificates
spl application/futuresplash
src application/x-wais-source
sst application/vnd.ms-pkicertstore
stl application/vnd.ms-pkistl
stm text/html
sv4cpio application/x-sv4cpio
sv4crc application/x-sv4crc
t application/x-troff
tar application/x-tar
tcl application/x-tcl
tex application/x-tex
texi application/x-texinfo
texinfo application/x-texinfo
tgz application/x-compressed
tif image/tiff
tiff image/tiff
tr application/x-troff
trm application/x-msterminal
tsv text/tab-separated-values
txt text/plain
uls text/iuls
ustar application/x-ustar
vcf text/x-vcard
vrml x-world/x-vrml
wav audio/x-wav
wcm application/vnd.ms-works
wdb application/vnd.ms-works
wks application/vnd.ms-works
wmf application/x-msmetafile
wps application/vnd.ms-works
wri application/x-mswrite
wrl x-world/x-vrml
wrz x-world/x-vrml
xaf x-world/x-vrml
xbm image/x-xbitmap
xla application/vnd.ms-excel
xlc application/vnd.ms-excel
xlm application/vnd.ms-excel
xls application/vnd.ms-excel
xlt application/vnd.ms-excel
xlw application/vnd.ms-excel
xof x-world/x-vrml
xpm image/x-xpixmap
xwd image/x-xwindowdump
z application/x-compress
zip application/zip -firefox
application/x-zip-compressed -IE
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動態加載庫文件)