Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
<?php $path = "./uploads/"; $valid_formats = array("jpg", "png", "jpeg"); if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ $name = $_FILES['photoimg']['name']; $size = $_FILES['photoimg']['size']; $tmp = $_FILES['photoimg']['tmp_name']; if(strlen($name)){ //возвращает длину строки list($txt, $ext) = explode(".", $name); if(in_array($ext,$valid_formats)) { if($size<(1024*1024)){ // Макс размер фото 1MB if(preg_match('/[.](PNG)|(png)$/', $name)) { $im = imagecreatefrompng($path.$name) ; //если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия } if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $name)) { $im = imagecreatefromjpeg($path.$name); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия } $Size = getimagesize($tmp); // создаём пустую квадратную картинку // важно именно truecolor!, иначе будем иметь 8-битный результат $dest = imagecreatetruecolor(200, 220); imagecopyresampled($dest, $im, 0, 0, 0, 0, 200, 220, $Size[0], $Size[1]); $actual_image_name = time().$_SESSION['id'].".".$ext; if(move_uploaded_file($tmp, $path.$actual_image_name)){ mysqli_query($CONNECT,"UPDATE `users` SET profile_image='$actual_image_name' WHERE id='$_SESSION[id]'"); echo "<img src='./uploads/".$actual_image_name."' class='preview'>"; } else echo'<span style="color:red;">Что-то пошло не так!</span>'; } else echo'<span style="color:red;">Размер файла превышает 1Mb!</span>'; } else echo'<span style="color:red;">Выбран неправильный формат!</span>'; } else echo'<span style="color:grey;">Пожалуйста выберите фото!</span>'; exit(); } ?>