導航:首頁 > 編程語言 > php判斷上傳文件類型

php判斷上傳文件類型

發布時間:2023-06-16 18:36:50

php文件上傳類型限制

有兩種方式可以給你解決,也可以幾種方式同時使用

  1. 使用原本自帶的函數getimagesize來判斷是否是圖片

  2. 使用獲取上傳文件頭的方式來判斷

$filename='xxxx.gif';
$file=fopen($filename,'rb');
$bin=fread($file,2);//只讀取上傳文件的頭文信息的2個位元組
fclose($file);
$strInfo=@unpack('c2chars',$bin);
$typeCode=intval($strInfo['chars1'].$strInfo['chars2']);
$fileType='';
switch($typeCode){
case7790:
$fileType='exe';
break;
case7784:
$fileType='midi';
break;
case8297:
$fileType='rar';
break;
case255216:
$fileType='jpg';
break;
case7173:
$fileType='gif';
break;
case6677:
$fileType='bmp';
break;
case13780:
$fileType='png';
break;
default:
echo'unknown';
break;
}
echo'文件類型:'.$fileType.'文件頭信息:'.$typeCode;

希望對你有用!

㈡ 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('不被允許的文件類型');
}
?>

㈢ php上傳文件是,判斷是否csv文件的文件類型怎麼寫

$_FILES接收到文件信息是個數組。

其中$_FILES['myFile']['name']客戶端文件的原名稱,

您用『.』來分割$_FILES['myFile']['name']分成一個索引數組,這個數組的最後一個值就是文件的擴展名。

或者你從最後一個「.」位置截取$_FILES['myFile']['name'],截取到最後。得到的結果也是文件的擴展名;

$_FILES['myFile']['type']得到的是文件的 MIME類型,這個並不能很好的反映文件的擴展名,

例如:

MIME類型為「text/html」,這個類型對應.html .htm .stm三種文件擴展名

MIME類型為「text/plain」,對應的是.c .txt .h .bas四種文件擴展名


㈣ 上傳文件時。PHP如何獲取上傳文件的具體信息

這與swfupload是無關的.路徑是你自己設定的或是默認PHP文件的當前路徑. 你可以看看$_FILES的這個全局變數 ,專門管理所有上傳的文件的.包含臨時路徑等.

㈤ PHP判斷上傳文件是不是webp

讀取文件前幾個位元組 判斷文件類型就好了

㈥ php中關於判斷上傳文件格式

$kuozhan=array('jpg','gif','doc');
$flag = 1; // 判斷上傳文件是否格式正確,正確則為1 , 有一個格式錯誤則0
// 循環,檢測格式是否錯誤

foreach($val['tmp_name'] as $key=>$us){
foreach($val['name'] as $key=>$ns){
$arr=pathinfo($val['name'][$key]);
if(!in_array($arr['extension'],$kuozhan)){
echo " 上傳失敗,格式錯誤!";
$flag = 0; // 格式有錯,flag為0

break;

}
}
}
// 上傳文件
if ($flag == 1) {
循環上傳文件

}

㈦ 怎麼用php實現文件的上傳,要求文件類型為jpg,大小不超過2m,上傳的文件存放在u

$_FILES官方文檔

你可以看看官方的$_FILES文檔,裡面有對$_FILES的內容的解釋。

想通過PHP來處理文件信息就得通過$_FILES的內容來處理,比如文件類型可以用type來判斷,要求文件類型為jpg,那就判斷if ($_FILES['file1']['type'] === 'image/jpeg'),這里的file1並不是絕對的,視情況而定。

當然如果你覺得判斷類型太麻煩,你也可以直接從name中判斷後綴名,自己將文件名分割一下就好了。大小可以用size,默認單位是位元組,不超過2M就要除以1024*1024了,可以將位元組轉換到兆位元組。

要將上傳的文件放在U目錄下,就用move_uploaded_file函數來解決,move_uploaded_file官方文檔

閱讀全文

與php判斷上傳文件類型相關的資料

熱點內容
加班程序員暈倒 瀏覽:70
java無邊框 瀏覽:128
蘋果如何把app數據拷貝到新手機 瀏覽:741
程序員電腦桌多寬 瀏覽:612
萊陽到青島源碼 瀏覽:385
php顯示星期幾 瀏覽:169
phpfun 瀏覽:868
wdcpphp安裝路徑 瀏覽:112
python拼音多音字 瀏覽:501
發動機壓縮比951 瀏覽:473
androidnetfilter 瀏覽:559
ci隱藏indexphp 瀏覽:439
視頻外發加密軟體限次數播放 瀏覽:680
刺激戰場輕量服怎麼換伺服器 瀏覽:492
一般買書上什麼app 瀏覽:220
php開發框架2017 瀏覽:69
電腦控制單片機 瀏覽:626
ios15如何修改app名稱 瀏覽:862
linuxphp安裝mysql資料庫 瀏覽:271
程序員怎麼鍛煉身體 瀏覽:102