Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2012
Помог: 0 раз(а)
|
Не работает загрузка изображения.
Вот код формы:
CODE ( html):
скопировать код в буфер обмена
<form action="save_user.php" method="post" enctype="multipart/form-data"> <p> <label>Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label> <input type="FILE" name="fupload"> </p> <input type="submit" name="submit" value="Зарегистрироваться"> </form>
Вот и код обработчика:
PHP:
скопировать код в буфер обмена
<? if (!empty($_POST['fupload'])) //проверяем, отправил ли пользователь изображение { $fupload=$_POST['fupload']; $fupload = trim($fupload); if ($fupload =='' or empty($fupload)) { unset($fupload);// если переменная $fupload пуста, то удаляем ее } } if (!isset($fupload) or empty($fupload) or $fupload =='') { //если переменной не существует (пользователь не отправил изображение),то присваиваем ему заранее приготовленную картинку с надписью "нет аватара" $avatar = "avatars/net-avatara.jpg"; //можете нарисовать net-avatara.jpg или взять в исходниках } else { //иначе - загружаем изображение пользователя $path_to_90_directory = 'avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения { $filename = $_FILES['fupload']['name']; $source = $_FILES['fupload']['tmp_name']; $target = $path_to_90_directory . $filename; $im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия } $im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия } if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) { $im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия } //СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ // Создание квадрата 90x90 // dest - результирующее изображение // w - ширина изображения // ratio - коэффициент пропорциональности $w = 90; // квадратная 90x90. Можно поставить и другой размер. // создаём исходное изображение на основе // исходного файла и определяем его размеры $w_src = imagesx($im); //вычисляем ширину $h_src = imagesy($im); //вычисляем высоту изображения // создаём пустую квадратную картинку // важно именно truecolor!, иначе будем иметь 8-битный результат // вырезаем квадратную серединку по x, если фото горизонтальное if ($w_src>$h_src) 0 , $w, $w, min($w_src,$h_src), min($w_src,$h_src)); // вырезаем квадратную верхушку по y, // если фото вертикальное (хотя можно тоже серединку) if ($w_src<$h_src) min($w_src,$h_src), min($w_src,$h_src)); // квадратная картинка масштабируется без вырезок if ($w_src==$h_src) $date=time(); //вычисляем время в настоящий момент. imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен. //почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение. $avatar = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара. $delfull = $path_to_90_directory.$filename; unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру. } else { //в случае несоответствия формата, выдаем соответствующее сообщение exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>"); } //конец процесса загрузки и присвоения переменной $avatar адреса загруженной авы } include ("bd.php"); $result2 = mysql_query ("INSERT INTO image (url) VALUES('$avatar')"); // Проверяем, есть ли ошибки if ($result2=='TRUE') { echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>"; } else { echo "Ошибка! Вы не зарегистрированы."; } ?>
Загружаю картинку, но попадаюсь на net-avatara. как будто не видно картинки. Кто то может помочь? Заранее спасибо.
|