VANHALEN
Новичок
Не создаются превьюшки на реальном хостинге
Помогите, ради бога! Нашёл где то функцию для создания превьюшек. Написал скрипт альбама, где её использовал. Но вот незадача. На реальном хостинге превьюшки попросту не создаются. Пробовал создавать их из темп файла и из уже загруженой фотографии - результат один и тот же. Тоесть никакого. Фотка есть - превьюшки нет. Под виндой всё отлично. Теперь извращаюсь до того, что сначала загружаю фотки под виндой, потом переношу на реальный хостинг.
Вот собственно сабж.
ЗАГРУЗКА ФОТКИ
if ($_GET['action'] == 'save_foto')
{
$date = date("d_m_Y");
$prefix = rand (1000000, 9999999);
$image_folder = "../foto/";
$tmp_name = $_FILES['kartinka']['tmp_name'];
passthru("chuid ".$_FILES['kartinka']['tmp_name']."");
$name = $_FILES['kartinka']['name'];
$name = normalize_file_name ($name);
// Узнаём размер картинки
$im=imageCreateFromJpeg($_FILES['kartinka']['tmp_name']);
$x=imageSX($im);
$y=imageSY($im);
$new_file_name = ("$date"."_$prefix"."_$name");
// Создаём превьюшку и копируем в папку
require ('imgresize.php');
if (img_resize("".$_FILES['kartinka']['tmp_name']."","../preview/".$new_file_name."", 78, 78)){
echo 'Картинка уменьшена';}
else{
echo 'Не получилось уменьшить картинку';}
// Теперь кидаем картинку с новым именем в папку
move_uploaded_file ($tmp_name, "$image_folder/"."$new_file_name");
$query = "INSERT INTO `foto` ( `id`, `cat`, `foto` , `alt` , `w` , `h` )
VALUES ( '', '".$_GET['cat']."', '$new_file_name' , '".$_POST['alt']."' , '$x' , '$y' )";
$res = mysql_query($query) or die(mysql_error());
echo "Файл загружен";
view_for_editing ($_GET['cat']);
}
ФУНКЦИЯ КОТОРАЯ НЕ ХОЧЕТ РАБОТАТЬ
<?php
/***********************************************************************************
Функция img_resize(): генерация thumbnails
Параметры:
$src - имя исходного файла
$dest - имя генерируемого файла
$width, $height - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
$rgb - цвет фона, по умолчанию - белый
$quality - качество генерируемого JPEG, по умолчанию - максимальное (100)
***********************************************************************************/
function img_resize($src, $dest, $width, $height, $rgb=0x333333, $quality=100)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
?>
Отказаться от её использования уже не могу и не хочу. Очень мне нужна.
Помогите, ради бога! Нашёл где то функцию для создания превьюшек. Написал скрипт альбама, где её использовал. Но вот незадача. На реальном хостинге превьюшки попросту не создаются. Пробовал создавать их из темп файла и из уже загруженой фотографии - результат один и тот же. Тоесть никакого. Фотка есть - превьюшки нет. Под виндой всё отлично. Теперь извращаюсь до того, что сначала загружаю фотки под виндой, потом переношу на реальный хостинг.
Вот собственно сабж.
ЗАГРУЗКА ФОТКИ
if ($_GET['action'] == 'save_foto')
{
$date = date("d_m_Y");
$prefix = rand (1000000, 9999999);
$image_folder = "../foto/";
$tmp_name = $_FILES['kartinka']['tmp_name'];
passthru("chuid ".$_FILES['kartinka']['tmp_name']."");
$name = $_FILES['kartinka']['name'];
$name = normalize_file_name ($name);
// Узнаём размер картинки
$im=imageCreateFromJpeg($_FILES['kartinka']['tmp_name']);
$x=imageSX($im);
$y=imageSY($im);
$new_file_name = ("$date"."_$prefix"."_$name");
// Создаём превьюшку и копируем в папку
require ('imgresize.php');
if (img_resize("".$_FILES['kartinka']['tmp_name']."","../preview/".$new_file_name."", 78, 78)){
echo 'Картинка уменьшена';}
else{
echo 'Не получилось уменьшить картинку';}
// Теперь кидаем картинку с новым именем в папку
move_uploaded_file ($tmp_name, "$image_folder/"."$new_file_name");
$query = "INSERT INTO `foto` ( `id`, `cat`, `foto` , `alt` , `w` , `h` )
VALUES ( '', '".$_GET['cat']."', '$new_file_name' , '".$_POST['alt']."' , '$x' , '$y' )";
$res = mysql_query($query) or die(mysql_error());
echo "Файл загружен";
view_for_editing ($_GET['cat']);
}
ФУНКЦИЯ КОТОРАЯ НЕ ХОЧЕТ РАБОТАТЬ
<?php
/***********************************************************************************
Функция img_resize(): генерация thumbnails
Параметры:
$src - имя исходного файла
$dest - имя генерируемого файла
$width, $height - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
$rgb - цвет фона, по умолчанию - белый
$quality - качество генерируемого JPEG, по умолчанию - максимальное (100)
***********************************************************************************/
function img_resize($src, $dest, $width, $height, $rgb=0x333333, $quality=100)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
?>
Отказаться от её использования уже не могу и не хочу. Очень мне нужна.