如何显示通过http身份验证保护的图像

时间:2014-06-04 16:40:41

标签: php html image http-authentication

如何在没有显示身份验证窗口的情况下从具有标准http保护的服务器显示图像?

我现在使用标准html

<img src="...">

但由于图像受到保护,因此需要验证窗口。我有登录数据,如何显示图像?

问候,汤姆。

2 个答案:

答案 0 :(得分:7)

这应该有效。只需将用户名和密码替换为您的身份验证详细信息(警告:不能在所有浏览器中使用)

<img src="http://username:password@server/Path" />

我建议将其放在服务器上的单独文件中。这样您就可以在不暴露身份验证信息的情况下引用它。

答案 1 :(得分:4)

我使用了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').'" />';
?>

获取图像。