国产探花免费观看_亚洲丰满少妇自慰呻吟_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 前面的分號去掉來啟用。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长丰县| 雅江县| 上林县| 河源市| 阳新县| 佳木斯市| 乌鲁木齐市| 高淳县| 汶川县| 武清区| 南城县| 合江县| 新巴尔虎右旗| 海盐县| 平顶山市| 崇文区| 炎陵县| 曲阜市| 汶川县| 闽侯县| 寿阳县| 黔南| 六安市| 洛阳市| 清水县| 云和县| 靖宇县| 内黄县| 郧西县| 萨迦县| 卢氏县| 靖江市| 丰城市| 平乐县| 田阳县| 石城县| 阳春市| 广东省| 会同县| 大荔县| 易门县|