Показ изображения с другого сайта отображает странную картинку вместо - PullRequest
1 голос
/ 05 ноября 2011

Я создаю Facebook-приложение, в котором вы можете просмотреть список понравившихся вам и вашему другу друзей на веб-странице, на которой много забавных картинок.Проблема в том, что когда я ссылаюсь на эти картинки, они появляются как нечто совершенно иное.Как заполнитель или что-то.Он отображается правильно, если он кешируется (я думаю).

Посмотрите на этот jsfiddle: http://jsfiddle.net/jVBSk/.Если щелкнуть правой кнопкой мыши изображение, вы получите другое имя файла, отличное от имени в источнике.

Как можно избежать этого, чтобы на странице отображались правильные изображения?

Ответы [ 3 ]

0 голосов
/ 05 ноября 2011

То, что вы делаете, называется горячая ссылка , и многие владельцы веб-сайтов его не одобряют.

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

0 голосов
/ 05 ноября 2011

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

<?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.jpgURL изображения должен быть закодирован.Это можно сделать с помощью urlencode() в PHP или с помощью онлайн-инструмента: http://meyerweb.com/eric/tools/dencoder/

Так что в HTML это будет примерно так: <img src="script.php?image=http%3A%2F%2Fgif.artige.no%2Fstore%2F10%2F10002.jpg" alt="[Image]" />

0 голосов
/ 05 ноября 2011

Сайт проверяет реферера, чтобы узнать, является ли он их доменом или нет.Если это не так, он возвращает это изображение «не кради это».(Если кто-то может перевести это, я уверен, что это то, что он говорит).

См. http://en.wikipedia.org/wiki/HTTP_referrer и http://en.wikipedia.org/wiki/Referrer_spoofing.

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