Указать тег <img>на изображение, динамически генерируемое PHP? - PullRequest
3 голосов
/ 30 апреля 2009

Можно ли перенаправить изображение в динамически генерируемое изображение (используя PHP)?

У меня динамически созданный образ, и он имеет расширение ".PHP" (очевидно), и этот сервер не находится под моим контролем. Поэтому я хочу перенаправить «somename.jpg» (на моем сервере) в «remoteserver / dynamicimage.php» (на некотором удаленном сервере, который не находится под моим контролем), чтобы я мог сразу связать его как <img src="somename.jpg"/> и динамически генерируемое изображение показано.

Пожалуйста, дайте мне знать, если это возможно.

Ответы [ 5 ]

2 голосов
/ 30 апреля 2009

Функция заголовка управляет заголовком HTTP, который браузер использует для определения типа файла (или должен в любом случае). Он может использоваться для сообщения браузеру, что скрипт генерирует файл изображения для загрузки. вместо вывода HTML-скрипта:

header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="somename.jpg"');
2 голосов
/ 30 апреля 2009

Браузеры следуют перенаправления для изображений. Создайте php-файл с именем «somename.jpg» и добавьте:

<?php
header('Location: http://www.otherserver.com/image.php');

Используйте директиву Apache ForceType в файле .htaccess, чтобы указать серверу обрабатывать файл .jpg как php:

<Files somename.jpg>
    ForceType application/x-httpd-php
</Files>

Или просто вызовите файл somename.php, если вам действительно не нужно расширение .jpg.

Возможно, вы могли бы сделать это, используя mod_alias , хотя я не пробовал:

Redirect somename.jpg http://www.otherserver.com/image.php

Это также относится к файлу .htaccess.

2 голосов
/ 30 апреля 2009

Попробуйте добавить что-то подобное в ваш файл .htaccess

RewriteEngine on
RewriteRule ^(.*)\.jpg$ /scripts/$1.php
1 голос
/ 30 апреля 2009

Возможно, но приведет к перенаправлению HTTP:

RewriteEngine on
RewriteRule ^somename\.jpg$ http://remoteserver/dynamicimage.php [L]

Альтернативой может быть использование прокси (см. P flag ), чтобы ваш сервер запрашивал удаленный ресурс и передавал его обратно клиенту.

0 голосов
/ 30 апреля 2009

Другим гораздо более сложным, но невероятно мощным способом было бы написать некоторый код обработчика, который активируется для этого локального URL-адреса местоположения изображения.

Эта команда извлекает данные из внешнего URL-адреса и выводит данные с правильным типом пантомимы.

Вы также пишете некоторый код для кэширования этих данных, основываясь на том, что возможно.

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

Все это гораздо сложнее, чем просто настроить перенаправление в конфигурации apache. Мы делали подобные вещи в тех случаях, когда URL-адреса могли бы пропустить конфиденциальную информацию в противном случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...