Fetch BLOB data

3 отговора 135 прегледа
#1

Fetch BLOB data

Здравейте.

Имам следното питане - как да изтегля снимки в BLOB поле, но така, че при следващото зареждане на страницата те да са кеширани от брузъра. В момента ползвам широко използваното imageGet.php?id=XXX, нo при голям обем от снимки при всеки един BACK в браузъра към тази страница натоварва излишно много всичко.

Идеята ми нещо от рода на imageGet.php/ID.jpg (така всяка снимка ще си има име и ще може да бъде кеширана). Пробвах варианта:

imageGet.php

<?php
eregi("/image\.php/([0-9]+)\.jpg/", $HTTP_SERVER_VARS["REQUEST_URI"], $buffer);
$file_id = (int) $buffer[1];

$conn = mysql_connect(.......);

$query = "select photo, photoType from TABLE where empID=$file_id";
$result = mysql_query($query) or die(mysql_error());

mysql_fetch_array($result, MYSQL_ASSOC);
$type = mysql_result($result, "photoType");
$data = mysql_result($result, "photo");

Header( "Content-type: $type");

echo $data;
?>

И съответно в страницата:

....
<img src="imageGet.php/101.jpg">
<img src="imageGet.php/666.jpg">
...

Но не става.
Или пък да не е проблема в настройките на WWW server-a (IIS 5 / PHP 4.3 / MySQL 4.1)

Отговор
в отговор на mr.vain #2

Re: Fetch BLOB data

зависи от настройките на браузера и експайр контент хедъра, иначе при голямо натоварване най-добрре е е да минеш към вариянта на пазенето им в отделна директория и скрипта четейки името от таблица да ти бълва файла към оутпут.

кешират се и снимки с параметри. Щом смяташ да пробваш с нещо като структура на директория то пробвай да юзнеш mod_rewrite

-----------------------
гърбавия - ковчег ще го изправи
Отговор
в отговор на mr.vain #3

Re: Fetch BLOB data

Поради тази причина, а и след съвет от Sale, аз лично се отказах да държа картинки в база данни. Какато казва и Вълк, по-добре е да пазиш в базата само името на файла, а самата картинка в отделна директория. Така и базата се товари по-малко и картинките се кешират от браузъра. Според мен това е по-доброто решение.

И най-ярките личности си плащат тока.
Отговор
в отговор на edembg #4

Re: Fetch BLOB data

Съвсем правилно! Така поне мисля и аз, пък и не съм виждал други елегантни решения по въпроса!

Отговор