2011-06-07 149 views
3

如何在php中獲取文件類型?filetype does not work in php

我曾嘗試以下代碼

不返回
$attachment_path = "/views/default/helpcentre/check_attachment/wildryan.jpg"; 
    $file_type = filetype($attachment_path); 
    $mime_type = mime_content_type($attachment_path); 
    echo "Type of the file: ".$file_type; 
    echo "Mime Type of the file: ".$mime_type; 

文件類型。如果在我的代碼中有任何錯誤。請親密如何獲得文件類型。

+0

你想獲取該文件的文件類型'的延伸返回文件的類型可能的數值是FIFO? (),mime_content_type() – DanielB 2011-06-07 10:01:56

+0

路徑是非常正確的 – DanielB 2011-06-07 10:16:27

+0

file_exists返回1. filetype()返回文件。mime_content_type()返回這些事情。我需要該文件的MIME類型。幫我加急 – 2011-06-07 10:22:48

回答

1

替代方案:將返回image/jpeg

echo mimeType(basename("/views/default/helpcentre/check_attachment/wildryan.jpg")); 

/** 
* Mime Type 
* 
* @param string 
* @return string 
*/ 
function mimeType($file) { 
    $mimeTypes = array(
     "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", 
     "js"  => "application/x-javascript", 
     "latex"  => "application/x-latex", 
     "lha"  => "application/octet-stream", 
     "log"  => "text/plain", 
     "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", 
     "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", 
     "svg"  => "image/svg+xml", 
     "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", 
     "xlsx"  => "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" 
    ); 

    $extension = end(explode('.', $file)); 
    return $mimeTypes[$extension]; 
} 
+0

非常感謝@Phill Pafford – 2011-06-07 11:59:47

1

據報道here爲mime_content_type()

該功能已經在 更清潔的方式被棄用 PECL擴展Fileinfo的提供 相同的功能(和更多)。

反正,我也經歷了很多與文件類型的麻煩,嘗試用fileinfo,也許效果更好

+0

給出了一些使用fileinfo的例子。我曾嘗試過fileinfo。我沒有拋出任何@MiPnamic。 – 2011-06-07 10:43:51

+0

@莫漢,我說:「嘗試與」...「也許更好的作品」只是因爲在php.net網站上建議:)我從來沒有嘗試過,很抱歉,如果它似乎 – MiPnamic 2011-06-07 14:35:20

1

請注意,您的$attachment_path值是絕對路徑,這意味着它看起來與服務器的根目錄文件系統。您最有可能需要一個與腳本相關的路徑,因此請刪除前導碼/

1

當您看不到這樣的基本代碼有任何問題時,請嘗試詢問自己是否輸入正確或錯誤。在這種情況下,請檢查$attachment_path是否導致存在的文件。或者簡單地嘗試用絕對URL替換它來測試它是否工作。

希望這個小提示有助於(: