我正在制作一个Facebook应用程序你可以在显示大量有趣图片的网页上浏览你和你朋友的喜欢。问题是,当我链接到这些图片时,它们看起来像其他东西。像占位符或其他东西。如果它被缓存(我认为),它会正确显示。
看看这个jsfiddle:http://jsfiddle.net/jVBSk/。如果右键单击图像,则会获得除源中的文件名之外的其他文件名。
如何避免这种情况,使页面显示正确的图像?
答案 0 :(得分:0)
它似乎有某种热链接保护。这个不是很好,所以很容易绕过。
<?php
$file = file_get_contents($_GET['image']);
header("Content-Type: image/jpeg");
$image = imagecreatefromstring($file);
imagejpeg($image);
imagedestroy($image);
?>
然后像这样调用脚本:script.php?image=http%3A%2F%2Fgif.artige.no%2Fstore%2F10%2F10002.jpg
必须对图像URL进行编码。这可以使用PHP中的urlencode()
来完成,或者这是一个在线工具:http://meyerweb.com/eric/tools/dencoder/
所以在HTML中就是这样的:<img src="script.php?image=http%3A%2F%2Fgif.artige.no%2Fstore%2F10%2F10002.jpg" alt="[Image]" />
答案 1 :(得分:-1)
网站正在检查引荐来源,看看它是否属于自己的域名。如果不是,那就回复这个&#34;不要偷这个&#34;图片。 (如果有人可以翻译,我确定这就是它的意思)。
请参阅http://en.wikipedia.org/wiki/HTTP_referrer和http://en.wikipedia.org/wiki/Referrer_spoofing。
答案 2 :(得分:-1)
你所做的事情被称为hot-linking,并且被许多网站所有者所诟病..
问题在于您正在窃取他们的带宽,并且当请求页面不是来自他们自己的域时,他们提供的是不同的图像而不是请求的图像。