Другой вариант, который вы могли бы рассмотреть (если вы используете Apache):
Создайте файл .htaccess
с mod_rewrite
для всех расширений изображения (png, jpg, gif).
Переадресация на php-скрипт, который ищет изображение, запрашиваемое в БД. Если это там, это выводит заголовок и БЛОГ. Если его там нет, возвращается стандарт 404.
Таким образом, вы можете иметь:
<img src="adorablepuppy.jpg" />
Который затем перенаправляется аля:
RewriteEngine on
RewriteRule \.(gif|jpg|png)$ imagelookup.php
Этот скрипт выполняет запрос к изображению, который (очевидно) предполагает, что запрашиваемое изображение имеет уникальный ключ, соответствующий имени файла в URL:
$url = $_SERVER['REQUEST_URI'];
$url_parts = explode("/", $url);
$image_name = array_pop($url_parts);
Теперь у вас есть только имя файла изображения. Сделайте запрос (который я оставлю на ваше усмотрение, вместе с любыми методами проверки и проверки реальных файлов по адресу и т. Д.).
Если получится результат:
header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename="adorablepuppy.jpg"');
print($image_blog);
в противном случае:
header("HTTP/1.0 404 Not Found");
К вашему сведению: я понятия не имею, будет ли это плохо с точки зрения производительности. Но это позволило бы вам делать то, что я думаю, что вы хотите, то есть выводить изображение, как если бы это был плоский файл изображения на сервере, используя простой элемент image
. Я склонен согласиться с тем, что BLOB - не лучший способ, но это позволяет избежать кросс-браузерных проблем.