日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP實(shí)現(xiàn)獲取文件mime類(lèi)型多種方法解析

瀏覽:178日期:2022-09-10 10:20:53

本文實(shí)例講述了php獲取文件mime類(lèi)型的方法。分享給大家供大家參考。具體如下:

1.使用 mime_content_type 方法

string mime_content_type ( string $filename )

Returns the MIME content type for a file as determined by using information from the magic.mime file.

<?php $mime_type = mime_content_type(’1.jpg’); echo $mime_type; // image/jpeg ?>

但此方法在 php5.3 以上就被廢棄了,官方建議使用 fileinfo 方法代替。

2.使用 Fileinfo 方法 (官方推薦)

使用fileinfo需要安裝php_fileinfo擴(kuò)展。

如已安裝可以在extension_dir目錄下找到php_fileinfo.dll(windows),fileinfo.so(linux)

打開(kāi)php.ini,把extension=php_fileinfo.dll前的';'去掉,然后重啟apache。

<?php $fi = new finfo(FILEINFO_MIME_TYPE); $mime_type = $fi->file(’1.jpg’); echo $mime_type; // image/jpeg ?>

3.使用 image_type_to_mime_type 方法(只能處理圖象類(lèi)型)

使用exif_imagetype方法需要安裝php_exif擴(kuò)展,并需要安裝php_mbstring擴(kuò)展

如已安裝可以在extension_dir目錄下找到php_exif.dll(windows),exif.so(linux)

打開(kāi)php.ini,把 extension=php_mbstring.dll, extension=php_exif.dll 前的','去掉,然后重啟apache

<?php $image = exif_imagetype(’1.jpg’); $mime_type = image_type_to_mime_type($image); echo $mime_type; // image/jpeg ?>

Tips:如果使用文件名的后綴來(lái)判斷,因?yàn)槲募缶Y是可以修改的,所以使用文件后綴來(lái)判斷會(huì)不準(zhǔn)確。

php獲取文件mime類(lèi)型Fileinfo等方法

前幾天寫(xiě)到使用wordpress xmlrpc api遠(yuǎn)程發(fā)布文章,如果本地服務(wù)器的文章庫(kù)里某一篇待發(fā)表的wordpress文章包含圖片文件時(shí),就會(huì)使用到WordPress上傳文件的API metaWeblog.newMediaObject,該api需要提供文件的mime 類(lèi)型。php如 何獲取文件(圖片)的mime 類(lèi)型呢?最初遠(yuǎn)方博客使用php mime_content_type()函數(shù),使用開(kāi)發(fā)用的ubuntu server lamp的默認(rèn)配置測(cè)試后完全支持,返回了正確的文件mime type。但是將該API項(xiàng)目移植到Centos 5.2(內(nèi)核2.6) LAMP環(huán)境時(shí),出現(xiàn)了如下錯(cuò)誤提示:

Fatal error: Call to undefined function: mime_content_type()

最后查看了最新的php手冊(cè)發(fā)現(xiàn)php mime_content_type()函數(shù)已經(jīng)被廢棄,當(dāng)然官方不推薦使用,而且需要經(jīng)過(guò)適當(dāng)?shù)膒hp配置后才能使用。因此要獲取圖片或其他的文件的 MIME類(lèi)型,F(xiàn)atal error: Call to undefined function: mime_content_type()錯(cuò)誤就有了以下幾種解決方案。

mime_content_type()函數(shù)判斷獲取mime類(lèi)型

如果對(duì)已被php 5.3.0廢棄的mime_content_type()函數(shù)仍然情有獨(dú)鐘,那么可以對(duì)php進(jìn)行配置啟用magic_mime擴(kuò)展。比如Centos下 使用phpinfo()查看php apache配置,查找到mime-magic,如果顯示“--without-mime-magic”,則要編譯php切換到”with-mime- magic“選 項(xiàng)。mime_content_type()函數(shù)還依賴(lài)于Apache httpd 的magic文件(mime_magic.magicfile),為了檢測(cè)文件的MIME類(lèi)型,必須配置告知magic文件的地址,如’?with- mime-magic=/usr/share/file/magic.mime’。Windows環(huán)境下還需要在php.ini中添加:

mime_magic.magicfile = '$PHP_INSTALL_DIRmagic.mime'

其中$PHP_INSTALL_DIR是你的php安裝目錄。在有些LAMP環(huán)境下,這個(gè)mime_magic文件不一定存在或可讀,還要另外下載。另外 有些虛擬主機(jī)為了安全考慮,即使是有with-mime-magic也不一定會(huì)返回正確的mime類(lèi)型,有時(shí)候會(huì)返回空字符串。因此,就憑 mime_content_type()函數(shù)已經(jīng)被廢棄這一項(xiàng),就不推薦使用該方法獲取文件MIME類(lèi)型了。

php Fileinfo 獲取文件MIME類(lèi)型(finfo_open)

PHP官方推薦mime_content_type()的替代函數(shù)是Fileinfo函數(shù)。PHP 5.3.0+已經(jīng)默認(rèn)支持Fileinfo函數(shù)(fileinfo support-enabled),不必進(jìn)行任何配置即可使用finfo_open()判斷獲取文件MIME類(lèi)型。Centos 默認(rèn)安裝的LAMP環(huán)境php版本還是PHP5.2.6,低于5.3.0版本則可能出現(xiàn)類(lèi)似錯(cuò)誤提示:PHP Fatal error: Call to undefined function finfo_open() in…。因?yàn)橹暗膒hp版本,需要加載magic_open類(lèi),fileinfo函數(shù)屬于PECL擴(kuò)展,啟用fileinfo PECL擴(kuò)展才能檢測(cè)MIME類(lèi)型。所以有兩種途徑使用fileinfo獲取文件的MIME類(lèi)型。

將php版本升級(jí)到5.3.0以上。php官方也已經(jīng)不再維護(hù)和更新這個(gè)fileinfo pecl擴(kuò)展包,所以升級(jí)是最好的辦法。

安裝fileinfo pecl擴(kuò)展,Centos linux 如何安裝fileinfo:在Centos下面安裝fileinfo命令(rpm):yum install php-pecl-Fileinfo。或使用源碼安裝編譯:

cd /usr/src/down && wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz tar zxvf Fileinfo-1.0.4.tgz cd /usr/src/down/Fileinfo-1.0.4 && phpize && ./configure && make && make install

還可以使用網(wǎng)上流傳較多的一種方法,Linux通過(guò)phpize使用pecl指令來(lái)安裝fileinfo:

若沒(méi)有phpize指令,需要先安裝。#phpize檢測(cè)若提示”No command ‘phpize’ found”,則需先安裝phpize; 下載安裝php-devel(php5-dev)的rpm,安裝phpize; service httpd restart 或 reboot; 命令 pecl install fileinfo 安裝fileinfo擴(kuò)展。 安裝完畢,/usr/lib/php/module目錄下多了fileinfo.so文件,/usr/share/file目錄下多了magic.mime和magic兩個(gè)文檔 修改php.ini配置:加入 extension=”fileinfo.so” service httpd restart Windows服務(wù)器下安裝fileinfo相似,php.ini:extension=php_fileinfo.dll

image_type_to_mime_type()獲取圖片MIME類(lèi)型

如果我們需要判斷MIME類(lèi)型的文件只有圖像文件,那么首先可以使用exif_imagetype()函數(shù)獲取圖像類(lèi)型常量,再用 image_type_to_mime_type()函數(shù)將圖像類(lèi)型常量轉(zhuǎn)換成圖片文件的MIME類(lèi)型。同樣php.ini中要配置打開(kāi) php_mbstring.dll(Windows需要)和extension=php_exif.dll。phpinfo()“?enable-exif”。首先exif_imagetype返回的是圖像類(lèi)型常量(Imagetype Constants),如IMAGETYPE_GIF、IMAGETYPE_JPEG、IMAGETYPE_PNG等。

<?php $image = exif_imagetype('D:farleeinfo.jpg'); //本地路徑或遠(yuǎn)程圖片地址均可 IMAGETYPE_GIF// $image = exif_imagetype('http://farlee.info/wp-content/images/rss_feedsky.gif'); $mime = image_type_to_mime_type($image); echo $mime; // 輸出image/jpeg ?>

php上傳文件獲取MIME類(lèi)型

如果使用php上傳文件,檢測(cè)上傳文件的MIME類(lèi)型,則可以使用全局變量$_FILES[’uploadfile’][’type’],由客戶端的瀏覽器檢測(cè)獲取文件MIME類(lèi)型。

Centos 系統(tǒng)或其他環(huán)境下若都不方便獲取文件MIME類(lèi)型的話,還有最后一種絕對(duì)可行的方法,就是讀取文件名后綴,根據(jù)后綴名一一對(duì)應(yīng)文件的MIME類(lèi)型,具體可以參考php手冊(cè)上的這條評(píng)論。當(dāng)然這種方法檢測(cè)到的MIME文件類(lèi)型不一定是非常準(zhǔn)確的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
波多视频一区| 日本蜜桃在线观看视频| 亚洲黄页一区| 亚洲欧美综合| 精品日韩毛片| 久久不射网站| 日韩在线成人| 久久精品 人人爱| 久久av日韩| 福利欧美精品在线| 在线手机中文字幕| а√天堂8资源中文在线| 日韩高清中文字幕一区二区| 电影亚洲精品噜噜在线观看| 欧美日韩精品一本二本三本| 视频一区二区中文字幕| 日韩精品久久理论片| 国产日本亚洲| 久久久久久色 | 久久精品国产99久久| 欧美福利在线| 午夜视频一区二区在线观看| 国产精品探花在线观看| 成人片免费看| 久久在线电影| 蜜桃一区二区三区在线观看| 欧美亚洲网站| av资源亚洲| 美国三级日本三级久久99| 欧美亚洲tv| 日产精品一区| 亚洲精品字幕| 成人亚洲精品| 99在线观看免费视频精品观看| 日本不卡不码高清免费观看 | 欧美视频久久| 久久电影tv| 久久不射中文字幕| 国产精选一区| 国产综合色产| 久久精品超碰| 亚洲伦乱视频| 亚洲区国产区| 亚洲欧洲美洲av| 一区二区三区午夜视频| 激情久久99| 久久亚洲色图| 国内不卡的一区二区三区中文字幕| 欧美中文一区二区| 国产日韩欧美中文在线| 色婷婷久久久| 欧美久久亚洲| 亚洲激情久久| 久久久精品区| 亚洲涩涩av| 日韩免费一区| 欧美日韩一区自拍| 免费毛片在线不卡| 麻豆精品久久久| 亚洲欧美日韩国产综合精品二区| 久久一区精品| 综合国产精品| 久久国产亚洲| 国产精品极品国产中出| 日韩一级欧洲| 久久中文在线| 日韩一区二区三免费高清在线观看| 91亚洲成人| 欧美在线观看天堂一区二区三区| 欧美/亚洲一区| 国产成人调教视频在线观看| 亚洲精品动态| 婷婷色综合网| 桃色av一区二区| 国产精品videossex久久发布| 鲁大师成人一区二区三区| 美女av在线免费看| 国产九九精品| 亚洲人成网站在线在线观看| 日本免费一区二区三区四区| 欧美亚洲tv| 亚洲精品人人| 视频精品一区二区| 亚洲精品99| 91精品国产自产在线观看永久∴| 精品免费av| 国产美女撒尿一区二区| 亚洲精品日本| 热久久免费视频| 黑丝一区二区| 香蕉国产精品| 久久精品av| 啪啪国产精品| 视频在线不卡免费观看| 另类小说一区二区三区| 亚洲精品看片| 亚洲少妇在线| 午夜国产精品视频| 亚洲性视频h| 亚洲播播91| 国产成人精品一区二区免费看京| 国产剧情一区二区在线观看| 日韩精品亚洲专区在线观看| 亚洲免费网址| 亚洲黄页一区| japanese国产精品| 激情欧美一区| 久久人人99| 久久一级电影| 国产一区日韩欧美| 久久久久美女| 91精品xxx在线观看| 鲁鲁在线中文| 黄在线观看免费网站ktv| 国产一区三区在线播放| 欧美a一区二区| 国产福利资源一区| 国产精品videosex极品| 欧美精品观看| 国产欧美日韩免费观看| 日本欧美大码aⅴ在线播放| 亚洲一级淫片| 午夜久久av| 日本久久一区| 国产欧美视频在线| 国产美女亚洲精品7777| 欧美日韩亚洲一区| 国产精品.xx视频.xxtv| 日韩不卡一区二区三区| 日韩激情啪啪| 欧美三区不卡| 麻豆免费精品视频| 国产一区二区三区四区五区| 亚洲深夜视频| 午夜久久99| 亚洲三级观看| 国产精品欧美在线观看| 福利一区二区三区视频在线观看| 在线看片福利| 欧美日韩在线播放视频| 黄色不卡一区| 免费人成黄页网站在线一区二区| 亚洲精品影院在线观看| 97成人超碰| 国产一区二区三区亚洲| 91精品国产自产在线观看永久∴ | 夜久久久久久| 日韩午夜视频在线| 欧美性www| 国产资源在线观看入口av| 欧美日韩在线二区| 在线观看视频免费一区二区三区| 国产欧美精品| 久久女人天堂| 久久视频一区| 亚洲日本在线观看视频| 国产精品magnet| 欧美精品日日操| 欧美中文日韩| 国产精品久久久久9999高清| 亚洲美女久久精品| 免费看的黄色欧美网站| 日韩高清二区| 麻豆视频在线观看免费网站黄| 色吊丝一区二区| 中文字幕一区日韩精品| 老色鬼精品视频在线观看播放| 国产99久久| 日韩精选在线| 精品久久电影| 快she精品国产999| 精品一区二区男人吃奶| 99精品99| 久久精品资源| 亚洲一区二区毛片| 久久精品一区二区国产| 欧美成人日韩| 国产精品一级| 国产女优一区| 成人午夜网址| 伊人久久大香伊蕉在人线观看热v| 久久成人av| 99国产精品99久久久久久粉嫩| 国产精品a久久久久| 久久久久久久久99精品大| 日韩中文字幕在线一区| 色在线中文字幕| 欧美日韩1区| 欧美成人日韩| 久久精品国产99国产| 午夜在线播放视频欧美| 国产成人精品亚洲线观看| 欧美资源在线| 中文在线资源| 国产调教精品| 国产一级一区二区| 亚洲精品**中文毛片| 日韩va欧美va亚洲va久久| 久久国产中文字幕| 国产日韩中文在线中文字幕|