本文目錄一覽:
- 1、php不限制上傳文件類型,怎麼實現?
- 2、php如果不限制限制上傳文件類型的話是不是任何類型都可以上傳??
- 3、php代碼不能上傳文件類型(為什麼添加docx\xlsx\pptx這類文件不能上傳到網站)還要改什麼地方?
- 4、php過濾上傳類型,只上傳圖片類型文件
- 5、PHP文件上傳類型限制
- 6、php怎樣設置不允許哪些類型的文件上傳,請給出代碼?
php不限制上傳文件類型,怎麼實現?
可以通過修改php.ini配置文件來達到更改上傳文件的大小
一個是 Upload_max_filesize 允許上傳的最大大小。單位M, Exp:50M
一個是 post_max_size:表單上允許的文件最大大小。單位M,Exp:50M
他們兩好像有一個要比其中一個的數值大,我記不太清了。
應該是upload_max_filesize的數值得大於post_max_size的數值
php如果不限制限制上傳文件類型的話是不是任何類型都可以上傳??
理論上是。
但是如果是虛擬主機的話,可能會受到限制。應為虛擬主機的提供商為了安全。可以在php.ini文件中做限制。指定某些文件不準上傳。
php代碼不能上傳文件類型(為什麼添加docx\xlsx\pptx這類文件不能上傳到網站)還要改什麼地方?
改下面這一句:
if ( substr( $fname, -4 ) != “.rar” substr( $fname, -4 ) != “.zip” substr( $fname, -4 ) != “.doc” substr( $fname, -4 ) != “.xls” substr( $fname, -4 ) != “.xlsx” substr( $fname, -4 ) != “.docx” substr( $fname, -4 ) != “.pptx” substr( $fname, -4 ) != “.ppt” substr( $fname, -4 ) != “.htm” substr( $fname, -5 ) != “.html” substr( $fname, -4 ) != “.gif” substr( $fname, -4 ) != “.jpg” substr( $fname, -4 ) != “.png” substr( $fname, -4 ) != “.chm” substr( $fname, -4 ) != “.txt” )
這一句的意思是指定只能傳那些文件,如果需要傳docx就需要添加在裡面,添加docx後的代碼如下:
if ( substr( $fname, -4 ) != “.rar” substr( $fname, -4 ) != “.zip” substr( $fname, -4 ) != “.doc” substr( $fname, -4 ) != “.xls” substr( $fname, -4 ) != “.xlsx” substr( $fname, -4 ) != “.docx” substr( $fname, -4 ) != “.pptx” substr( $fname, -4 ) != “.ppt” substr( $fname, -4 ) != “.htm” substr( $fname, -5 ) != “.html” substr( $fname, -4 ) != “.gif” substr( $fname, -4 ) != “.jpg” substr( $fname, -4 ) != “.png” substr( $fname, -4 ) != “.chm” substr( $fname, -4 ) != “.txt” substr( $fname, -5 ) != “.docx” )
你對比一下就知道我修改的地方,就是在)前面加上 substr( $fname, -5 ) != “.docx” ,你用類似的辦法可以增加對其它擴展名的支持。
php過濾上傳類型,只上傳圖片類型文件
你可以這樣,如果說你的上傳文件文件名是$uploadfilename,那麼可以用
$str = end(explode(“.”,$uploadfilename));獲得上傳文件的擴展名,然後再進行判斷if($str==”jpg” or $str==”jpeg” or $str==”gif” or $str==”png”)的時候才執行上傳,否則返回錯誤提示信息,這樣子來限制上傳文件類型
PHP文件上傳類型限制
有兩種方式可以給你解決,也可以幾種方式同時使用
使用原本自帶的函數getimagesize來判斷是否是圖片
使用獲取上傳文件頭的方式來判斷
$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){
case 7790:
$fileType=’exe’;
break;
case 7784:
$fileType=’midi’;
break;
case 8297:
$fileType=’rar’;
break;
case 255216:
$fileType=’jpg’;
break;
case 7173:
$fileType=’gif’;
break;
case 6677:
$fileType=’bmp’;
break;
case 13780:
$fileType=’png’;
break;
default:
echo ‘unknown’;
break;
}
echo ‘文件類型:’.$fileType.’ 文件頭信息:’.$typeCode;
希望對你有用!
php怎樣設置不允許哪些類型的文件上傳,請給出代碼?
$arrDenyExts = array(“gif”, “jpeg”, “jpg”, “png”); //不允許上傳文件的格式
$temp = explode(“.”, $_FILES[“file”][“name”]); //按點分割文件名,這裡根據
//$temp = explode(“.”,”d:\test.jpg”); //按點分割文件名
$extension = end($temp);//獲取最後一個元素,確保是文件格式
$isAllow = true;
foreach($arrDenyExts as $key=$val) {
if($extension==$val) {
$isAllow=false;
break;
}
}
if($isAllow) {
echo “該文件格式允許上傳br/”;
} else {
echo “該文件格式不允許上傳br/”;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257774.html