|
|
|
| Аватарка отображается в левом блоке страницы, после того как она поменялась на вновь загруженную делаю header("Location:kabinet.php");(форма для загрузки аватарки на этой же странице), но отображается по прежнему старая аваторка, если обновить то все ОК.
Как сделать чтоб она автоматически обновлялась а не из кеша бралась?
Еще напомните пожалуйста функцию, при помощи которой проверяется что картинка пришла из формы. | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 17:24)
| | >Еще напомните пожалуйста функцию, при помощи которой проверяется что картинка пришла из формы.
Ничего не понял. Имеете вввиду при загрузке файла на сервер? | |
|
|
|
|
|
|
|
для: ols
(04.11.2009 в 17:35)
| | да
Но главный вопрос как сделать чтобы картинка обновилась в левом блоке сразу после загрузки ее на сервер | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 18:04)
| |
<?
if(is_uploaded_file($_FILES['image']['tmp_name']))
{
move_uploaded_file($_FILES['image']['tmp_name'],$newfilename);
}
?>
|
| |
|
|
|
|
|
|
|
для: ols
(04.11.2009 в 18:20)
| | Спасибо это я и имел ввиду во втором вопросе! | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 18:04)
| | >Но главный вопрос как сделать чтобы картинка обновилась в левом блоке сразу после загрузки ее на сервер
Вы напишите хоть что это за самый левый блок. О чем речь-то? | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 17:24)
| | >Аватарка отображается в левом блоке страницы, после того как она поменялась на вновь загруженную делаю header("Location:kabinet.php");(форма для загрузки аватарки на этой же странице), но отображается по прежнему старая аваторка, если обновить то все ОК.
>Как сделать чтоб она автоматически обновлялась а не из кеша бралась?
Прилепляйте к адресу пару случайных символов при сохранении на диск. Тогда адрес картинки будет меняться и она не будет грузиться из кэша. | |
|
|
|
|
|
|
|
для: Temnovit
(04.11.2009 в 18:23)
| | >Прилепляйте к адресу пару случайных символов при сохранении на диск. Тогда адрес
>картинки будет меняться и она не будет грузиться из кэша
Я не могу менять название картинки, она называется по id пользователя и потом ищеться по этому id
Вот функция которой я обрабатываю картинку
<?
function img_resize($src, $dest, $width, $heightnuj, $rgb = 0xFFFFFF, $quality = 75) {
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
$kr = $size['0']/$size['1'];
$height = $width/$kr;
if($height>$heightnuj)
{$ratio = $height/$heightnuj;
$width = $width/$ratio;
$height = $height/$ratio;
}
$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;
}
|
Вот так ее вызываю
$a = $HTTP_POST_FILES["avatarka"]["tmp_name"];
img_resize($a, 'avatar/'.$id_user.'.jpg', 142, 190);
header("Location:kabinet.php"); //эфекта не дает картинка все равно береться из кеша
exit;
?>
|
вот форма
<form action="kabinet.php" method="post" enctype="multipart/form-data"><input name="avatarka" type="file">
<input type="hidden" name="MAX_FILE_SIZE" value=\"1048000\" />
<input name="avatar" type="submit" value="Загрузить" /><br /><font size="-1">Максимальный размер картинки 1 Мб.</font></form>
|
Конечно можно сделать рефреш мета тегом или яваскриптом, но не очень хочеться так как страница как будто "моргнет", а хотелось бы чтоб просто картинка взялась не из кеша | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 18:31)
| | >Я не могу менять название картинки, она называется по id пользователя и потом ищеться по этому id
Значит Вам придется эту логику переделать.
К примеру - записывать текущее название файла с аватаркой в данные о пользователе наравне с его id, логином и прочими. Ну или хотя бы номер её версии.
Вопросы обновления частей страницы - вопросы языков клиентской стороны (HTML+JS+CSS). | |
|
|
|
|
|
|
|
для: Trianon
(04.11.2009 в 19:57)
| | Заменил
header("Location:kabinet.php");
| на
echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=kabinet.php'>
</head></html>";
|
Конечно все работает хоть и не так красиво(во втором случае страница все-таки начинает загружаться и вылетает белый фон),
Но главное, я если честно думал что эти 2 кода будут иметь приблизительно один и тот же эффект в части обновления, но почему то когда используется header(), страница береться из кеша, можно как-нибудь все-таки указать что нужно обновить страницу а не брать ее из кеша?. | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 20:24)
| | точно также. Location: kabinet.php?случайное_число
Только это не даст никаких гарантий, что изображение тоже обновится. | |
|
|
|
|
|
|
|
для: Trianon
(04.11.2009 в 20:43)
| | Пробовал не обновляется :))) | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 20:46)
| | Я уже написал.
Если (и только в том случае если) Вы меняете объект (картинку) - Вы обязаны сменить её имя. Или как минимум её URI. | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 18:31)
| |
<?
header("Pragma: no-cache, must-revalidate");
header("Expires: Mon, 01 Jan 1990 00:00:00 GMT");
header("Content-type: image/jpeg");
|
| |
|
|
|
|
|
|
|
для: sim5
(04.11.2009 в 21:28)
| | Sim5, я настолько дико рад, что Вы, наконец, вернулись, что даже не стану критиковать предложенное Вами фе.
Где Вы пропадали? | |
|
|
|
|
|
|
|
для: Trianon
(04.11.2009 в 21:32)
| | Будем считать, что вопрос решен, но у меня есть еще вопросик, который думаю не заслуживает отдельной темы:
Написал игрушку(кто хочет стать миллионером) можно как-нибудь узнать сколько она занимает ресурсов когда играют одновременно, ну скажем 1000 человек? Просто хочеться хостинг подобрать подешевле, но и чтоб игрушка шла без тормозов | |
|
|
|
|
|
|
|
для: Trianon
(04.11.2009 в 21:32)
| | В казино играл. А почему "фе"? | |
|
|
|
|
|
|
|
для: sim5
(04.11.2009 в 21:41)
| | много выиграли?
Потому что такой код запретит картинке кешироваться не только в момент замены. | |
|
|
|
|
|
|
|
для: Trianon
(04.11.2009 в 21:45)
| | Состояние ;-)
А, ну да, значится я не внимательно читал чего надо автору. | |
|
|
|
|
|
|
|
для: sim5
(04.11.2009 в 21:47)
| | А как насчет
Написал игрушку(кто хочет стать миллионером) можно как-нибудь узнать
сколько она занимает ресурсов когда играют одновременно, ну скажем 1000 человек?
Просто хочеться хостинг подобрать подешевле, но и чтоб игрушка шла без тормозов
|
Конечно щас вопрос не важен, так как не скоро у меня 1000 единовременно играть будут, но просто интересно, как можно узнать сколько ресурсов занимает скрипт если его одновременно запускают много народу | |
|
|
|
|
|
|
|
для: tvv123456
(04.11.2009 в 21:49)
| | Ну если вашему Якубовичу будет присылать соленья, варенья и прочие подарки, то.... :) | |
|
|
|
|
|
|
|
для: sim5
(04.11.2009 в 22:11)
| | да просто там асинхронных аякс запросов много с периодичностью 2 секунды так что нагрузка не малая, но все-таки хочеться конкретики | |
|
|
|