1. php 驗證上傳的文件類型為圖片,並獲得文件的後綴名
以下是我上傳了一個圖片後顯示的 $_FILES['filename']的信息
[filename] => Array
(
[name] => Winter.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php2jw7QX
[error] => 0
[size] => 105542
)
其中type是文件類型的minitype 表示方法,例如普通的HTML的類型是text/html
如果你想用擴展名的方式判斷的話可以用以下代碼:
<?php
#允許的文件擴展名
$allowed_types = array('jpg', 'gif', 'png');
$filename = $_FILES['filename']['name'];
#正則表達式匹配出上傳文件的擴展名
preg_match('|\.(\w+)$|', $filename, $ext);
#print_r($ext);
#轉化成小寫
$ext = strtolower($ext[1]);
#判斷是否在被允許的擴展名里
if(!in_array($ext, $allowed_types)){
die('不被允許的文件類型');
}
?>
2. HTML PHP 中要判斷 $_FILES['file']['type'] 為 image 的話則顯示預覽圖片
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg")){ //如果文件類型為gif、jpeg、pjpeg的話
?>
在這里寫上顯示圖片的代碼
<?php }?>
3. Php裡面判斷一個文件是不是一個真正的圖片
好像有一個函數getimagesize,他可以返回指定文件的信息,如果是一張圖片他會返回一個數組,可以查一下手冊
4. php怎麼判斷一個url是不是圖片
可以分析HTTP頭信息中的Content-Type。
php有獲取頭信息的函數get_headers():
//$url為圖片地址
$header=get_headers($url,1);
//$headers['Content-Type']是URL的類型
$type=explode('/',$headers['Content-Type']);
if($type[0]==='image'){
//這是一個圖片
}
else{
//這不是一個圖片
}
關於get_headers()的具體信息,可以參見:
PHP手冊:get_headers():http://php.net/manual/zh/function.get-headers.php
如果要寫成一個函數,就是:
functionis_image($url){
$header=get_headers($url,1);
$type=explode('/',$headers['Content-Type']);
if($type[0]==='image'){
//這是一個圖片
returnTRUE;
}
else{
//這不是一個圖片
returnFALSE;
}
}
這樣就可以了。