




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
利用PHP判斷文件是否為圖片的方法總結(jié)
要判斷一個(gè)文件是否為圖片的功能,通過查找相關(guān)的資料找到了幾種方法,包括
利用getimagesize函數(shù)獲取圖片信息然后進(jìn)行判斷或讀取圖片的前2個(gè)字節(jié)
等方法。下面來一起看看詳細(xì)的介紹吧需要的朋友可以參考下。
前言
在網(wǎng)頁(yè)設(shè)計(jì)中,如果需要圖片,我們通常拿到的是一個(gè)圖片的文件名。僅僅通過
文件名是無法判斷該文件是否是一個(gè)圖片文件的?;蛟S有的人以為通過后綴名就
可以判斷,別忘了文件的后綴名是可以隨便改動(dòng)的。更何況,在Linux系統(tǒng)下
是不以后綴來區(qū)分文件格式的。如果天真的以為通過后綴名就能區(qū)分圖片,那可
能出現(xiàn)錯(cuò)誤時(shí),你連錯(cuò)誤在哪兒都不知道。比如有一個(gè)討厭的人把一個(gè)文本文件
改成backgroundjpg然后給你用,你可能只會(huì)簡(jiǎn)單的認(rèn)為這個(gè)圖片被損壞了,
萬萬沒想到它竟然僅僅是一個(gè)文本文件。
為了避免—些不必要的問題出現(xiàn),在拿到—個(gè)圖片時(shí),應(yīng)該正確的判斷該文件是
否真的—個(gè)圖片文件。這里總結(jié)了三種判斷方法,有需要的朋友們可以—起來看
看吧。
方法一
利用getimagesize函數(shù)獲取圖片信息,然后進(jìn)行判斷:
<?php#Script--isimg.php
1
2
/*Author@Huoty
*Date@2015-11-2416:59:26
3
*Brief@
4*/
5
functionisimage($filename)
6{
7$types='.gifl.jpegl.pngl.bmp';//定義檢查的圖片類型
if(file_exists($filename))
8
{
9if(($info=@getimagesize($))
10return0;
11
12$ext=image_type_to_extension($info['2']);
13returnstripos($types,$ext);
}
14
else
{
15
returnfalse;
1167
}
}
18
if(isimage('isimg.txt')!==false)
{
19
echoisImage('1.jpg');
20
echo'是圖片';
222123
}
else
{
h,不是圖)上,
ec。7.'
}
24?>
25
26
27
28
29
30
31
32
33
34
方法二
讀取圖片的前2個(gè)字節(jié),然后判斷是不是圖片:
<?php#Script--isimg2.php
1
2
/*Author@Huoty
*Date@2015-11-2516:42:38
3
*Brief@
4*/
5
//判斷上傳的是不是圖片
6functionisimg($)
7{
$file=fopen($fileName,"rb");
8$bin=fread($file,2);//只詼2寧節(jié)
9
fclose($file);
10
$strinfo=@unpack("C2chars",$bin);
11
$typeCode=intval($strinfo['charsl'].$strinfo['chars2']);
12
$fileType='';
13
14
if($typeCode==255216/*jpg*/11$typeCode==7173/*gif*/11$typeCode==13
15
780/*png*/)
{
16
return$typeCode;
17}
else
18
{
IIecho'"僅允許上傳jpgljpeglgiflpng格式的圖片!
19
returnfalse;
20}
}
21
22222222345678
if(.lsIrngr,1J,.pg,,、丿、丿
、.
{}
”是不圖片
echoo,.,
e1se
{}?
是圖片
eh“,,·
cJ
>
29
30
31
32
33
34
35
36
37
38
方法三
最后一種方法是利用exif_imagetype函數(shù),該函數(shù)用于判斷一個(gè)圖像的類型,
采用這種方法更加簡(jiǎn)單。讀取—個(gè)圖像的第—個(gè)字節(jié)并檢查其簽名。如果發(fā)現(xiàn)
了t合當(dāng)?shù)暮灻麆t返回—個(gè)對(duì)應(yīng)的常量,否則返回FALSE。返回值和
getimagesize()返回的數(shù)組中的索引2的值是—樣的,但該函數(shù)要快得多。
該函數(shù)的返回值常噩定義如下:
1IMAGETYPE—GIF
2IMAGETYPE_JPEG
3IMAGETYPEPNG
2-
4IMAGETYPE_SWF
5IMAGETYPE_PSD
3
6IMAGETYPEBMP
7IMAGETYPE_TIFF_II(Intel字節(jié)順序)
4
8IMAGETYPE_TIFF_MM(Motorola字節(jié)順序)
9IMAGETYPEJPC
5-
10IMAGETYPE_JP2
11IMAGETYPEJPX
6-
12IMAGETYPEJB2
13IMAGETYPESWC
7-
14IMAGETYPE_IFF
15IMAGETYPEWBMP
8-
16IMAGETYPE_XBM
9
10
11
12
13
14
15
16
<?php#Script--isimg3.php
1
2
/*Author@Huoty
*Date@2015-11-2516:53:04
3
*Brief@
4*/
5
$mimetype=exif_imagetype("1.jpg");
6
if($mimetype==IMAGETYPE_GIF11$mimetype==IMAGETYPE_JPEG11$mimetype==I
7
MAGETYPE_PNG
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醬包瓜項(xiàng)目可行性研究報(bào)告
- 2024山東鹽及調(diào)味品批發(fā)市場(chǎng)前景及投資研究報(bào)告
- 2024-2025學(xué)年高中數(shù)學(xué)課時(shí)分層作業(yè)3排列的應(yīng)用含解析北師大版選修2-3
- 2024-2025學(xué)年高中生物第1章無菌操作技術(shù)實(shí)踐第1節(jié)微生物的分離和培養(yǎng)學(xué)案蘇教版選修1
- 2024-2025學(xué)年高中英語(yǔ)Unit5InsideadvertisingSectionⅡLanguagePoints講義新人教版選修9
- 2024-2025學(xué)年高中歷史專題5歐洲宗教改革1“神圣的中心組織”-天主教練習(xí)人民版選修1
- 2024-2025學(xué)年高中物理第1章3平拋運(yùn)動(dòng)第1課時(shí)平拋運(yùn)動(dòng)的特點(diǎn)及規(guī)律練習(xí)含解析教科版必修2
- 2022-2027年中國(guó)旅游景區(qū)市場(chǎng)競(jìng)爭(zhēng)格局及未來投資前景預(yù)測(cè)報(bào)告
- 2024年河北省普通高中學(xué)業(yè)水平選擇性考試物理試題含答案
- 2024-2030年遼寧塔吊租賃行業(yè)發(fā)展研究與前景分析報(bào)告
- 2025年中國(guó)工程建設(shè)行業(yè)現(xiàn)狀、發(fā)展環(huán)境及投資前景分析報(bào)告
- 《海瀾之家公司績(jī)效管理現(xiàn)狀、問題及優(yōu)化對(duì)策(7600字論文)》
- 小學(xué)四年級(jí)英語(yǔ)教學(xué)反思3篇
- DB1509T 0025-2024 肉牛舍設(shè)計(jì)與建筑技術(shù)規(guī)范
- 上海室內(nèi)裝飾施工合同示范文本2024年
- 2024版2024年《汽車文化》全套教案
- 房地產(chǎn) -中建科工五大類型項(xiàng)目成本指標(biāo)庫(kù)
- 2024小紅書保健品行業(yè)營(yíng)銷通案
- 未來網(wǎng)絡(luò)支撐下的數(shù)字身份體系:產(chǎn)業(yè)和技術(shù)發(fā)展趨勢(shì)(2024年)定稿版本
- 新《卷煙營(yíng)銷》理論知識(shí)考試題庫(kù)(附答案)
- 中考英語(yǔ)688高頻詞大綱詞頻表
評(píng)論
0/150
提交評(píng)論