milad_d993
پنج شنبه 05 اردیبهشت 1398, 13:01 عصر
سلام دوستان.:بوس:
برای آپلود عکس از کد زیر اسفاده میکنم
فقط عکس های با پسوند png رو آپلود میکنه. و برای بقیه عکس ها خطای format رو برمیگردانه
نظرتون درمورد این تابع چیه؟ چیزی اظافه یا کم داره؟؟ :متفکر:
<?php
function image_check($file){
$result['flag'] = false;
$result['error'] = '';
$result['target_dir'] = 'uploads/';
$target_file = $result['target_dir'] . basename($file['name']);
$result['pic_type'] = strtolower(pathinfo($target_file,PATHINFO_EXTENSIO N));
if($file['error'] != 0){
switch($file['error']){
case 4:
$result['error'] = 'unselected';
return $result;
case 1:
case 2:
$result['error'] = 'size';
return $result;
default:
$result['error'] = 'unknown';
return $result;
}
}else if($file['size'] > 524288){ /* 512KB */
$result['error'] = 'size';
return $result;
}else if(!extension_loaded('fileinfo')){
$result['error'] = 'fileinfo';
return $result;
}else if(!extension_loaded('gd') && !extension_loaded('gd2')){
$result['error'] = 'gd';
return $result;
}else{
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $file['tmp_name']);
finfo_close($finfo);
if(!getimagesize($file['tmp_name']) || !in_array($result['pic_type'], array('png','gif','bmp','jpg','jpeg')) || !in_array($mimetype, array('image/png','image/gif','image/bmp','image/jpeg'))){
$result['error'] = 'format';
return $result;
}else{
$res = false;
switch($file['error']){
case 'png' :
$res = imagecreatefrompng($file['tmp_name']);
break;
case 'gif' :
$res = imagecreatefromgif($file['tmp_name']);
break;
case 'bmp' :
$res = imagecreatefromwbmp($file['tmp_name']);
break;
case 'jpg' :
case 'jpeg':
$res = imagecreatefromjpeg($file['tmp_name']);
break;
}
if(!$res){
imagedestroy($res);
$result['error'] = 'format';
return $result;
}else imagedestroy($res);
}
}
$result['flag'] = true;
return $result;
}
?>
تست کردم خروجی توابع imagecreatefromX ریسورس (Resource) بود ولی تو یه وبلاگ فارسی ک نمونه کد گذاشته بود اینطوری استفاده کرده بود ک خروجی تابع انگار bool هستش.
نوع Resource چیه دقیقا؟؟
برای آپلود عکس از کد زیر اسفاده میکنم
فقط عکس های با پسوند png رو آپلود میکنه. و برای بقیه عکس ها خطای format رو برمیگردانه
نظرتون درمورد این تابع چیه؟ چیزی اظافه یا کم داره؟؟ :متفکر:
<?php
function image_check($file){
$result['flag'] = false;
$result['error'] = '';
$result['target_dir'] = 'uploads/';
$target_file = $result['target_dir'] . basename($file['name']);
$result['pic_type'] = strtolower(pathinfo($target_file,PATHINFO_EXTENSIO N));
if($file['error'] != 0){
switch($file['error']){
case 4:
$result['error'] = 'unselected';
return $result;
case 1:
case 2:
$result['error'] = 'size';
return $result;
default:
$result['error'] = 'unknown';
return $result;
}
}else if($file['size'] > 524288){ /* 512KB */
$result['error'] = 'size';
return $result;
}else if(!extension_loaded('fileinfo')){
$result['error'] = 'fileinfo';
return $result;
}else if(!extension_loaded('gd') && !extension_loaded('gd2')){
$result['error'] = 'gd';
return $result;
}else{
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $file['tmp_name']);
finfo_close($finfo);
if(!getimagesize($file['tmp_name']) || !in_array($result['pic_type'], array('png','gif','bmp','jpg','jpeg')) || !in_array($mimetype, array('image/png','image/gif','image/bmp','image/jpeg'))){
$result['error'] = 'format';
return $result;
}else{
$res = false;
switch($file['error']){
case 'png' :
$res = imagecreatefrompng($file['tmp_name']);
break;
case 'gif' :
$res = imagecreatefromgif($file['tmp_name']);
break;
case 'bmp' :
$res = imagecreatefromwbmp($file['tmp_name']);
break;
case 'jpg' :
case 'jpeg':
$res = imagecreatefromjpeg($file['tmp_name']);
break;
}
if(!$res){
imagedestroy($res);
$result['error'] = 'format';
return $result;
}else imagedestroy($res);
}
}
$result['flag'] = true;
return $result;
}
?>
تست کردم خروجی توابع imagecreatefromX ریسورس (Resource) بود ولی تو یه وبلاگ فارسی ک نمونه کد گذاشته بود اینطوری استفاده کرده بود ک خروجی تابع انگار bool هستش.
نوع Resource چیه دقیقا؟؟