国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

使用finfo_file()函數檢測上傳圖片的類型

2024-04-25 20:35:48
字體:
來源:轉載
供稿:網友

1. 使用finfo_file()函數檢測上傳圖片的類型

在輸入輸出中,文件的交互必不可少,比如文件的上傳什么的。這里我們來解決一個小問題,就是如何判斷用戶上傳文件的文件類型。

舉一個應用場面:在我們的Web應用中,比如用戶上傳頭像,要求是png,jpg,gif格式,接收到圖片后會根據圖片格式類型做不同的頭像切割處理,但個別用戶會傳一些只更改過文件后綴的非標準圖片,比如nowamagic.jpg 強行修改成 nowamagic.png,這樣程序無法對該類型圖片進行切割,切割失敗。這個時候就需要對文件進行檢測,并且僅僅根據后綴來判斷是不行的。

這種這么常見的需求,PHP肯定自帶了某些函數來實現的,這個函數就是 finfo_file。

finfo_file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Return information about a file,This function is used to get information about a file.

函數很簡單,看看官方文檔就大概清楚了,這里就舉一個使用例子吧,就是上傳一張圖片,并判斷它的類型:

<html>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<head>

<title>文件上傳</title>

</head>

<body>

<form accept="" method="post" enctype="multipart/form-data">

<input type="file" name="img[]" /><br />

<input type="submit" name="s" /><br />

</form>

<?php

//上傳文件信息

$img = $_FILES['img'];

if ($img)

{

//文件存放目錄,和本php文件同級

$dir = dirname(__file__);

$filename = $img['name'][0];

$tempname = $img['tmp_name'][0];

$savepath = "$dir//$filename";

$state = move_uploaded_file($tempname, $savepath);

//如果上傳成功,預覽

if($state)

{

echo "<img src='$filename' alt='$filename' /> ";

}

$finfo = finfo_open(FILEINFO_MIME_TYPE);

//$mime = finfo_file($finfo, dirname(__FILE__)."/".$filename);

$mime = finfo_file($finfo, $savepath);

echo $mime;

}

?>

</body>

</html>

需要注意的是,finfo_file 函數需要 PHP 版本 >= 5.3.0,如果低于 5.3,那么需要到 php.ini 里,將 extension=php_fileinfo.dll 前面的分號去掉來啟用。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉中市| 德钦县| 西昌市| 林甸县| 神农架林区| 厦门市| 平顺县| 军事| 宜章县| 峨山| 城步| 萨嘎县| 蒲江县| 长垣县| 盐源县| 渑池县| 望奎县| 屯留县| 延津县| 二连浩特市| 平塘县| 柳河县| 高州市| 尉犁县| 大宁县| 莆田市| 嵩明县| 和田县| 密云县| 扬中市| 祁门县| 陈巴尔虎旗| 绥滨县| 怀宁县| 固安县| 武清区| 阜城县| 肃南| 白山市| 萍乡市| 日喀则市|