PHP實(shí)現(xiàn)提取一個(gè)圖像文件并在瀏覽器上顯示的代碼
更新時(shí)間:2012年10月06日 20:59:51 作者:
去年做過(guò)一個(gè)項(xiàng)目,要把用戶上傳的圖像文件列出文字清單,當(dāng)用戶點(diǎn)擊一個(gè)文件名后,就可以顯示這個(gè)圖像.今天有機(jī)會(huì)重新考慮這個(gè)功能,在php手冊(cè)中發(fā)現(xiàn)幾行代碼,簡(jiǎn)潔明快,完全能實(shí)現(xiàn)我要的功能,還不需要GD庫(kù)
去年做過(guò)一個(gè)項(xiàng)目,要把用戶上傳的圖像文件列出文字清單,當(dāng)用戶點(diǎn)擊一個(gè)文件名后,就可以顯示這個(gè)圖像.
因?yàn)橐紤]兼容各種不同的圖像格式, 我使用了GD庫(kù), 判斷出具體是那種圖像文件(MINE),再調(diào)用相應(yīng)的image生成函數(shù)imagecreatefromXXX(),生成一個(gè)img,再將這個(gè)img以jpeg格式輸出至瀏覽器,雖然做出來(lái)了,但總覺(jué)得不滿意.
今天有機(jī)會(huì)重新考慮這個(gè)功能,在php手冊(cè)中發(fā)現(xiàn)幾行代碼,簡(jiǎn)潔明快,完全能實(shí)現(xiàn)我要的功能,還不需要GD庫(kù)
<?php
$size = getimagesize($filename); //獲取mime信息
$fp=fopen($filename, "rb"); //二進(jìn)制方式打開(kāi)文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 輸出至瀏覽器
exit;
} else {
// error
}
?>
代碼量是我原來(lái)的1/10都不到,速度快了N倍.
因?yàn)橐紤]兼容各種不同的圖像格式, 我使用了GD庫(kù), 判斷出具體是那種圖像文件(MINE),再調(diào)用相應(yīng)的image生成函數(shù)imagecreatefromXXX(),生成一個(gè)img,再將這個(gè)img以jpeg格式輸出至瀏覽器,雖然做出來(lái)了,但總覺(jué)得不滿意.
今天有機(jī)會(huì)重新考慮這個(gè)功能,在php手冊(cè)中發(fā)現(xiàn)幾行代碼,簡(jiǎn)潔明快,完全能實(shí)現(xiàn)我要的功能,還不需要GD庫(kù)
復(fù)制代碼 代碼如下:
<?php
$size = getimagesize($filename); //獲取mime信息
$fp=fopen($filename, "rb"); //二進(jìn)制方式打開(kāi)文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 輸出至瀏覽器
exit;
} else {
// error
}
?>
代碼量是我原來(lái)的1/10都不到,速度快了N倍.
您可能感興趣的文章:
- 使用PHP生成二維碼的兩種方法(帶logo圖像)
- php圖像處理函數(shù)大全(推薦收藏)
- PHP輸出圖像imagegif、imagejpeg與imagepng函數(shù)用法分析
- PHP圖片裁剪函數(shù)(保持圖像不變形)
- PHP圖像處理之imagecreate、imagedestroy函數(shù)介紹
- 基于OpenCV的PHP圖像人臉識(shí)別技術(shù)
- PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn)
- PHP中繪制圖像的一些函數(shù)總結(jié)
- PHP GD庫(kù)生成圖像的幾個(gè)函數(shù)總結(jié)
- 解析php常用image圖像函數(shù)集
- PHP基于GD庫(kù)的圖像處理方法小結(jié)
- php實(shí)現(xiàn)的證件照換底色功能示例【人像摳圖/換背景圖】
相關(guān)文章
解析csv數(shù)據(jù)導(dǎo)入mysql的方法
本篇文章是對(duì)將csv數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07PHP使用curl函數(shù)發(fā)送Post請(qǐng)求的注意事項(xiàng)
這篇文章主要給大家介紹的是PHP使用curl函數(shù)發(fā)送Post請(qǐng)求的一些注意事項(xiàng),文中通過(guò)示例代碼與解釋介紹的很詳細(xì),對(duì)大家學(xué)習(xí)或則使用PHP具有一定的參考借鑒價(jià)值,有需要的朋友們可以跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2016-11-11php中json_decode()和json_encode()的使用方法
json_decode對(duì)JSON格式的字符串進(jìn)行編碼而json_encode對(duì)變量進(jìn)行 JSON 編碼,需要的朋友可以參考下2012-06-06詳解PHP版本兼容之openssl調(diào)用參數(shù)
這篇文章給大家分享了PHP版本兼容之openssl調(diào)用參數(shù)的詳細(xì)說(shuō)明,有興趣的朋友參考學(xué)習(xí)下。2018-07-07javascript+php實(shí)現(xiàn)根據(jù)用戶時(shí)區(qū)顯示當(dāng)?shù)貢r(shí)間的方法
這篇文章主要介紹了javascript+php實(shí)現(xiàn)根據(jù)用戶時(shí)區(qū)顯示當(dāng)?shù)貢r(shí)間的方法,實(shí)例分析javascript獲取客戶端時(shí)區(qū)及與服務(wù)器端php交互的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03php lcg_value與mt_rand生成0~1隨機(jī)小數(shù)的效果對(duì)比分析
下面小編就為大家?guī)?lái)一篇php lcg_value與mt_rand生成0~1隨機(jī)小數(shù)的效果對(duì)比分析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04