可以通过PHP上传的文件类型是什么?


What are the file types you can upload via PHP?

我试图找到一个参考,显示"TYPES"的不同名称就像$_FILES["file"]["type"] == "image/gif",但我正在寻找csv, ms excel, mac数字,ms word等。

我在php.net或google上找不到任何东西。我很可能叫错了。

我应该找的东西叫什么?

这实际上在PHP手册中有解释。

来自http://php.net/manual/en/features.file-upload.post-method.php(强调我的)

$_FILES['userfile']['type']:如果浏览器提供了该信息,则文件的mime类型。例如"image/gif"。然而,PHP端不会检查此mime类型,因此不要认为它的值是理所当然的。

所以你要找的术语是MIME TYPE。把它放到谷歌上可能会让你最终进入维基百科的https://en.wikipedia.org/wiki/Internet_media_type

Internet媒体类型[1]是Internet上文件格式的两部分标识符。标识符最初是在RFC 2046中定义的,用于通过SMTP发送的电子邮件,但它们的使用已经扩展到其他协议,如HTTP、RTP和SIP。这些类型被称为MIME类型,有时也被称为content -type,在几个协议的报头名称之后,其值就是这种类型。

文章还指出

IANA管理媒体类型官方注册表

点击链接进入

  • https://www.iana.org/assignments/media-types

,其中包含您正在查找的列表。请注意,查看该列表基本上是没有意义的,除非您想找出特定文件格式的官方mime类型是什么。

附带说明:如果您想验证/检测文件的mime类型,请检查我在

中提供的代码。
  • PHP如何检查文件是mp3还是图像文件?

您正在寻找MIME类型。但是请注意,您不应该信任$_FILES['...']['type']。相反,您应该分析文件内容本身以确保它们是正确的格式。

在一个论坛上发现了下面的列表,似乎足够完整,可以在这里发布

'hqx'   =>  'application/mac-binhex40'
'cpt'   =>  'application/mac-compactpro'
'csv'   =>  'text/x-comma-separated-values', 'application/vnd.ms-excel'
'bin'   =>  'application/macbinary'
'dms'   =>  'application/octet-stream'
'lha'   =>  'application/octet-stream'
'lzh'   =>  'application/octet-stream'
'exe'   =>  'application/octet-stream'
'class' =>  'application/octet-stream'
'psd'   =>  'application/x-photoshop'
'so'    =>  'application/octet-stream'
'sea'   =>  'application/octet-stream'
'dll'   =>  'application/octet-stream'
'oda'   =>  'application/oda'
'pdf'   =>  'application/pdf', 'application/x-download'
'ai'    =>  'application/postscript'
'eps'   =>  'application/postscript'
'ps'    =>  'application/postscript'
'smi'   =>  'application/smil'
'smil'  =>  'application/smil'
'mif'   =>  'application/vnd.mif'
'xls'   =>  'application/excel', 'application/vnd.ms-excel'
'ppt'   =>  'application/powerpoint'
'wbxml' =>  'application/wbxml'
'wmlc'  =>  'application/wmlc'
'dcr'   =>  'application/x-director'
'dir'   =>  'application/x-director'
'dxr'   =>  'application/x-director'
'dvi'   =>  'application/x-dvi'
'gtar'  =>  'application/x-gtar'
'gz'    =>  'application/x-gzip'
'php'   =>  'application/x-httpd-php'
'php4'  =>  'application/x-httpd-php'
'php3'  =>  'application/x-httpd-php'
'phtml' =>  'application/x-httpd-php'
'phps'  =>  'application/x-httpd-php-source'
'js'    =>  'application/x-javascript'
'swf'   =>  'application/x-shockwave-flash'
'sit'   =>  'application/x-stuffit'
'tar'   =>  'application/x-tar'
'tgz'   =>  'application/x-tar'
'xhtml' =>  'application/xhtml+xml'
'xht'   =>  'application/xhtml+xml'
'zip'   => 'application/x-zip', 'application/zip', 'application/x-zip-compressed'
'mid'   =>  'audio/midi'
'midi'  =>  'audio/midi'
'mpga'  =>  'audio/mpeg'
'mp2'   =>  'audio/mpeg'
'mp3'   =>  'audio/mpeg'
'aif'   =>  'audio/x-aiff'
'aiff'  =>  'audio/x-aiff'
'aifc'  =>  'audio/x-aiff'
'ram'   =>  'audio/x-pn-realaudio'
'rm'    =>  'audio/x-pn-realaudio'
'rpm'   =>  'audio/x-pn-realaudio-plugin'
'ra'    =>  'audio/x-realaudio'
'rv'    =>  'video/vnd.rn-realvideo'
'wav'   =>  'audio/x-wav'
'bmp'   =>  'image/bmp'
'gif'   =>  'image/gif'
'jpeg'  =>  'image/jpeg', 'image/pjpeg'
'jpg'   =>  'image/jpeg', 'image/pjpeg'
'jpe'   =>  'image/jpeg', 'image/pjpeg'
'png'   =>  'image/png',  'image/x-png'
'tiff'  =>  'image/tiff'
'tif'   =>  'image/tiff'
'css'   =>  'text/css'
'html'  =>  'text/html'
'htm'   =>  'text/html'
'shtml' =>  'text/html'
'txt'   =>  'text/plain'
'text'  =>  'text/plain'
'log'   =>  'text/plain', 'text/x-log'
'rtx'   =>  'text/richtext'
'rtf'   =>  'text/rtf'
'xml'   =>  'text/xml'
'xsl'   =>  'text/xml'
'mpeg'  =>  'video/mpeg'
'mpg'   =>  'video/mpeg'
'mpe'   =>  'video/mpeg'
'qt'    =>  'video/quicktime'
'mov'   =>  'video/quicktime'
'avi'   =>  'video/x-msvideo'
'movie' =>  'video/x-sgi-movie'
'doc'   =>  'application/msword'
'word'  =>  'application/msword', 'application/octet-stream'
'xl'    =>  'application/excel'
'eml'   =>  'message/rfc822'