Регистрация
Вход через соцсети
Восстановление пароля

Не получается выводить фото пользователей в заданном размере

Новый топик
12.07.2007, 02:46
Ответить | Цитировать
Гость
Гость

Фото пользователей вводятся при регестрации в системной таблице "пользователи", где имеется поле Photo типа файл формат 1000000:image/*, кроме этого имеется поле sPhoto такого же типа для вывода фото в заданном размере. В "Альтернативной форме добавления объекта" в "Действие после добавления объекта" поставил следующий скрипт:
";
if($f_Photo)
{
$im = ImageCreateFromJPEG($f_Photo);
$ims = getimagesize($f_Photo);
$hw = $ims[1]/$ims[0];
If($hw > 0.9)
{
$kh=90/$ims[1];
$w=$kh*$ims[0];
$h = 90; $w = round($w);
$im2 = imagecreatetruecolor($w,90);
imagecopyresized($im2 , $im , 1,1,1,1,$w,90,imageSX($im),imageSY($im));
$im=$im2;
}
If($hw < 0.9)
{
$kw=100/$ims[0];
$h=$kw*$ims[1];
$h = round($h); $w = 100;
$im2 = imagecreatetruecolor(100,$h);
imagecopyresized($im2 , $im , 1,1,1,1,100,$h,imageSX($im),imageSY($im));
$im=$im2;
}
imagejpeg ($im, "$f_Photo", 100);
imageDestroy($im);
@imageDestroy($im2);
$sPhoto = $f_Photo;
$res = listQuery("INSERT INTO User (sPhoto) VALUES ($sPhoto)");
}
echo "

при этом после регестрации нового пользователя система выдает:
Warning: imagecreatefromjpeg(Array) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/...../www/netcat/add.php(182) : eval()'d code on line 4 и т.д. по всем функциям. Т.е. поле F_Photo почему-то не ведет к самому фото.

Что делать дальше?
12.07.2007, 14:36
Ответить | Цитировать
VlastV
qb.digital

Зарегистрирован:
2005-11-02
Сообщений: 202

f_Photo выдет к файлу, относительно DOCUMENET_ROOT. Соответственно, необходимо писать полный путь к файлу $DOCUMENT_ROOT.$f_Photo

Разработка сайтов на CMS NetCat. Портфолио http://vlastv.ru/ E-mail: me [at] vlastv [dot] ru ; ICQ: 66117050
12.07.2007, 16:38
Ответить | Цитировать
d

Зарегистрирован:
2007-02-09
Сообщений: 93

Не совсем так. $f_Photo содержит виртуальный путь для обработчика. Реальный адрес (как раз для функций getimagesize() и т.п.) - в переменной $f_Photo_url. Поэтому надо писать: $DOCUMENT_ROOT.$f_Photo_url
14.07.2007, 02:57
Ответить | Цитировать
Гость
Гость

Подставляю как было предложено
$im = ImageCreateFromJPEG($DOCUMENT_ROOT.$f_Photo_url);
$ims = getimagesize($DOCUMENT_ROOT.$f_Photo_url);

и получаю такое предупреждение:

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in /home/.../www/netcat/add.php(182) : eval()'d code on line 4

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/home/.../www/' is not a valid JPEG file in /home/911aid.ru/www/netcat/add.php(182) : eval()'d code on line 4

Warning: getimagesize() [function.getimagesize]: Read error! in /home/911aid.ru/www/netcat/add.php(182) : eval()'d code on line 5

К тому же в шаблоне галлереи нашел другой вариант оформления:
<center>".opt($imsize=getimagesize($DOCUMENT_ROOT.str_replace("h_","",$f_BigPhoto)),"")
но он тоже у меня выдает такое же предупреждение.

Как же все таки оформить правильно?

198 196 2007-07-14 02:57:10 9036
Описание проекта