Поданные изображения через PHP не загружаются в Shadowbox - PullRequest
1 голос
/ 04 декабря 2011

Я давно использую shadowbox без проблем на своих сайтах.Я создал файл PHP для обслуживания медиа-контента из защищенной папки.Вот что находится в файле download.php:

<?php
$fullpath="/home/user/media/image1.jpg";
header("Content-Type: image/jpeg");
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: inline; filename='.basename($filename));    
header("Content-Length: " . filesize($fullpath));
readfile($fullpath);
exit;
?>

Это хорошо работает, если я вызываю его с помощью тега IMG или пытаюсь загрузить изображение.Например:

<img src="download.php?id=123" />

Однако, если я использую shadowbox, браузер темнеет, и у меня даже не появляется анимация загрузки, и ничего не отображается.

<a href="download.php?id=358" rel="shadowbox[test]"><img src="download.php?id=358"/></a>

Изображение будет отображаться нормально спример выше, но при нажатии теневая коробка не загружается.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

Проблема, в вашем случае, заключается в том, что Shadowbox проверяет расширение файла перед извлечением контента.Если вы будете искать внутри shadowbox.js (попробуйте поискать img.ext), вы найдете это где-нибудь:

img.ext=["bmp","gif","jpg","jpeg","png"];

Итак, вы можете попробовать добавить PHP, чтобы немного ослабить его иShadowbox с радостью захватит ваше изображение:

img.ext=["bmp","gif","jpg","jpeg","png","php"];

Или вы можете сохранить ваш php-файл как jpg (звучит странно, нет?) И заставить сервер обрабатывать его как php-файл,Например, если вы используете Apache и .htaccess разрешено, вы можете попробовать создать .htaccess (или добавить эти строки в существующий файл .htaccess) с помощью:

<files download.jpg>
  ForceType application/x-httpd-php
</files>
0 голосов
/ 26 января 2015

Не станет ли включение php для изображений на уровне htaccess огромным риском для безопасности?

...