Fetch BLOB data
3 отговора
135 прегледа
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)
Имам следното питане - как да изтегля снимки в 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)
Re: Fetch BLOB data
зависи от настройките на браузера и експайр контент хедъра, иначе при голямо натоварване най-добрре е е да минеш към вариянта на пазенето им в отделна директория и скрипта четейки името от таблица да ти бълва файла към оутпут.
кешират се и снимки с параметри. Щом смяташ да пробваш с нещо като структура на директория то пробвай да юзнеш mod_rewrite
-----------------------
гърбавия - ковчег ще го изправи
кешират се и снимки с параметри. Щом смяташ да пробваш с нещо като структура на директория то пробвай да юзнеш mod_rewrite
-----------------------
гърбавия - ковчег ще го изправи
Re: Fetch BLOB data
Поради тази причина, а и след съвет от Sale, аз лично се отказах да държа картинки в база данни. Какато казва и Вълк, по-добре е да пазиш в базата само името на файла, а самата картинка в отделна директория. Така и базата се товари по-малко и картинките се кешират от браузъра. Според мен това е по-доброто решение.
И най-ярките личности си плащат тока.
И най-ярките личности си плащат тока.
Re: Fetch BLOB data
Съвсем правилно! Така поне мисля и аз, пък и не съм виждал други елегантни решения по въпроса!