2014-06-04 1 views
4

Как я могу показать изображение с сервера со стандартной защитой HTTP без отображения окна проверки подлинности?Как показать изображение, которое защищено http-аутентификацией

я теперь использовать стандартный HTML

<img src="..."> 

а потому, что изображение защищено это запрашивает окно аутентификации. У меня есть данные для входа, как я могу показать изображение?

С уважением, Том.

+0

Вы должны указать код. – Jonast92

+2

Можете ли вы вообще использовать PHP? Если нет, пожалуйста, проигнорируйте этот комментарий. Если это так, я бы предложил использовать php-скрипт в качестве прокси-сервера и использовать cURL с базовым auth (http://stackoverflow.com/questions/2140419/how-do-i-make-a-request-using-http-basic- authentication-with-php-curl), чтобы прочитать изображение из удаленного места. Затем установите тип содержимого заголовка независимо от типа изображения. Например, для заголовка JPEG: 'Content-Type: image/jpeg'); Я часто использую этот механизм. – IrishGeek82

ответ

3

Я использовал совет IrishGeeks, чтобы получить решение. Он работает во всех браузерах. Script.php является

<?php 
$url = $_GET['url']; 
$c = curl_init($url); 
$authString = 'user:pass'; 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_USERPWD, $authString); 

$content = curl_exec($c); 
$contentType = curl_getinfo($c, CURLINFO_CONTENT_TYPE); 
header('Content-Type:'.$contentType); 
print $content; 
?> 

Затем используйте

<?php 
print '<img src="script.php?url='.urlencode('http://www.example.com/image.bmp').'" />'; 
?> 

Чтобы получить изображение.

4

Это должно сработать. Просто замените имя пользователя и пароль на свои данные аутентификации. (Предупреждение: не работает во всех браузерах)

<img src="http://username:[email protected]/Path" /> 

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