Ben mesajı aldım sonra, nasıl küçük bir genişlik (maksimum genişlik 80, dk da 80) yeniden boyutlandırmak ve güvenlik amaçlı ne kontrol etmelisiniz?
Benim geçerli kod:
if(!empty($_FILES)) {
# Resize Image function
$return=true;
function resizeImage($originalImage,$toWidth,$toHeight){
// Get the original geometry and calculate scales
list($width, $height) = getimagesize($originalImage);
$xscale=$width/$toWidth;
$yscale=$height/$toHeight;
// Recalculate new size with default ratio
if ($yscale>$xscale){
$new_width = round($width * (1/$yscale));
$new_height = round($height * (1/$yscale));
}
else {
$new_width = round($width * (1/$xscale));
$new_height = round($height * (1/$xscale));
}
// Resize the original image
$imageResized = imagecreatetruecolor($new_width, $new_height);
$imageTmp = imagecreatefromjpeg ($originalImage);
imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
return $imageResized;
}
// Get the file information
$userfile_name = $_FILES['profile_picture']['name'];
$userfile_tmp = $_FILES['profile_picture']['tmp_name'];
$userfile_size = $_FILES['profile_picture']['size'];
$userfile_type = $_FILES['profile_picture']['type'];
$filename = basename($_FILES['profile_picture']['name']);
$file_ext = strtolower(substr($filename, strrpos($filename, '.') + 1));
//Only process if the file is a JPG and below the allowed limit
if((!empty($_FILES["profile_picture"])) && ($_FILES['profile_picture']['error'] == 0)) {
$allowed_image_types = array('image/pjpeg'=>"jpg",'image/jpeg'=>"jpg",'image/jpg'=>"jpg",'image/png'=>"png",'image/x-png'=>"png",'image/gif'=>"gif");
$allowed_image_ext = array_unique($allowed_image_types); // Do not change this
foreach ($allowed_image_types as $mime_type => $ext) {
if($file_ext==$ext ){
$return=false;
break;
} else {
$return=true;
}
}
if ($userfile_size > (7*1048576)) { # 7 means 7 mb
$return=false;
}
} else {
$return=false;
}
//Everything is ok, so we can upload the image.
if (strlen($return)==0){
$widthAndHeight = getimagesize($userfile_tmp . "." . $file_ext); //EDITED QUESTION
$width = $widthAndHeight[0];
$height = $widthAndHeight[1];
if ($width > 80){
$scale = 80/$width;
$height = $height * $scale;
$data = resizeImage($userfile_name,80,$height,$scale);
$data = mysql_real_escape_string($data);
} else {
$data = mysql_real_escape_string($userfile_name);
}
$update = mysql_query("UPDATE `avatar` set image = '{$data}' WHERE userid = '" . $_SESSION['userid'] . " . '");
} else {
$return=false;
}
Sadece küçük bir dosyayı saklayabilirsiniz beri MySQL veritabanı veri türü MEDIUMBLOB olduğunu
Benim sorunum söz için özür dilerim, onun değil çalışma kodu. Hata:
Warning: getimagesize(C:\wamp\tmp\php991B.tmp.png) [function.getimagesize]: failed to open stream: No such file or directory in C:\wamp\www\XXX\avatar.php on line 82**strong text**