|
|
|
| Здравствуйте!
Как-то давно уже написал скриптик, который позволяет выводить на экран уменьшенные картинки для предпросмотра. Суть работы скрипта проста до безобразия: При обращении браузера к физически несуществующей картинке по адресу:
http://school13nv.ru/uploads/images/news_images/miniatures/80/1aug2009-01.JPG
|
файл ошибки 404.php заданный при помощи .htaccess создает миниатюру этой картинки из реально существующего файла:
http://school13nv.ru/uploads/images/news_images/1aug2009-01.JPG
|
Листинг 404.php:
<?
if (function_exists("apache_lookup_uri")) header("HTTP/1.1 200 OK");
header("Status: 200 OK");
// Думается мне, что загвоздка в этих двух строках. Все, что ниже - работает. =)
$uri = $_SERVER['REQUEST_URI'];
$a = explode("/",$uri);
if(isset($a[count($a)-3]))if($a[count($a)-3]=='miniatures'){
$res = $a[count($a)-2];
$source_name = ".".str_replace($a[count($a)-3]."/".$a[count($a)-2]."/","",$uri);
$arr1 = explode("/",$source_name);
$arr2 = explode(".",$arr1[count($arr1)-1]);
$img_id = $arr2[0];
if (is_file($source_name)) {
$size = getimagesize($source_name);
if($size[0]>$size[1]){
$dest_width = $res;
$ratio = $size[0]/$res;
$dest_height = intval($size[1]/$ratio);
}
else{
$dest_height = $res;
$ratio = $size[1]/$res;
$dest_width = intval($size[0]/$ratio);
}
Header("Content-type: image/jpg");
$src_img = imagecreatefromjpeg($source_name);
$im = imagecreatetruecolor($dest_width,$dest_height);
imagecopyresampled($im, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $size[0], $size[1]);
ImageJpeg($im);
imagedestroy($im);
}
exit();
}
?>
|
До недавнего времени пользовался одним только огнелисом и проверял работоспособность этого скрипта только на нем, на ехпролере и вроде на опере тоже работало... Да. Точно...
Суть проблемы такова:
Недавно решил скачать и посмотреть браузер Google Chrome, написанный на движке WebKit. И наткнулся на проблему: при открытии страниц, содержащих уменьшенные моим скриптом картинки, хром показывает фигу. Хотя если нажмакать правой по рисунку, которого типа физически нет, и жмакнуть "Открыть рисунок в новой вкладке" рисунок будет открыт... Все мои расписульки сводятся к вопросу, обозначенному в названии темы.
Буду очень признателен за умные мысли и обоснованные обвинения в кривизне рук.=) | |
|
|