Подскажите, пожалуйста, кто знает как загрузить изображение в БД MySQL с пердварительной обработкой. Под обработкой подразумевается уменьшение размера изображения. есть два скрипта. один загрузает иображение в БД. второй - уменьшение размера и загрузка на сервер. можно ли их как нибудь соеденить? | Код | // Проверяем пришел ли файл if( !empty( $_FILES['image']['name'] ) ) { // Проверяем, что при загрузке не произошло ошибок if ( $_FILES['image']['error'] == 0 ) { // Если файл загружен успешно, то проверяем - графический ли он if( substr($_FILES['image']['type'], 0, 5)=='image' ) { // Читаем содержимое файла $image = file_get_contents( $_FILES['image']['tmp_name'] ); // Экранируем специальные символы в содержимом файла $image = mysql_escape_string( $image ); // Формируем запрос на добавление файла в базу данных $query="UPDATE objects SET plan='".$image."' WHERE id=".$_GET['obj']; // После чего остается только выполнить данный запрос к базе данных mysql_query( $query ); } } }
|
| Код | <?php /** * $filename string = 'img.jpg' - путь картинки * $percent string = 300 - ширина уменьшенной копии картинки * $quality string = 0-100 - качество изображения **/ function resize ($filename, $size = 300, $quality = 85) { $dir = '/images/'; // Адрес директории для сохранения картинки $ext = strtolower(strrchr(basename($filename), ".")); // Получаем формат уменьшаемого изображения $extentions = array('.jpg', '.gif', '.png', '.bmp'); // Определяем формат уменьшаемой картинки if (in_array($ext, $extentions)) { $percent = $size; // Ширина изображения миниатюры list($width, $height) = getimagesize($fileaname); // Возвращает ширину и высоту картинки $newheight = $height * $percent; $newwidth = $newheight / $width; $thumb = imagecreatetruecolor($percent, $newwidth); switch ($ext) { case '.jpg': $source = @imagecreatefromjpeg($filename); break; case '.gif': $source = @imagecreatefromgif($filename); break; case '.png': $source = @imagecreatefrompng($filename); break; case '.bmp': $source = @imagecreatefromwbmp($filename); break; }
// php уменьшение изображения imagecopyresized($thumb, $source, 0, 0, 0, 0, $percent, $newwidth, $width, $height); // Создаем изображение switch ($ext) { case '.jpg': imagejpeg($thumb, $dir . $filename, $quality); // Для JPEG картинок break; case '.gif': imagegif($thumb, $dir . $filename); // Для GIF картинки break; case '.png': imagepng($thumb, $dir . $filename, $quality); // Для PNG картинок break; case '.bmp': imagewbmp($thumb, $dir . $filename); // Для BMP картинки break; } } else return 'Error: type;'; @imagedestroy($thumb); @imagedestroy($source); return $filename; } ?>
|
Это сообщение отредактировал(а) xrustic - 1.7.2010, 12:59
|