2013-04-23 1 views
0

Я использую PHP-скрипт для чтения некоторых папок в каталоге и на основе их имен извлекает их плакаты. Все это отлично работает на localhost. Однако при открытии извне это не работает и приводит к blank изображениям.Загрузка изображений на localhost, но не с использованием IP

Скриншот из локального хоста: Screenshot of localhost


Проблему можно найти на 89.241.171.100/Prac/. PHP генерации img tag:

while (false !== ($entry = readdir($handle))) { 
     $counter++; 
     echo "<span class='title'> 
       <img src='holder.js/200x280/text:$entry' 
        alt='$entry' 
        onload='loader(this, \"$entry\")' /> 
        </span>"; 
     if($counter == 5) break; 
} 

PHP извлечение ГКЗ для изображений, называемых через AJAX из loader():

if($_POST['title']) { 
    $title = $_POST['title']; 
    $imdb = new Imdb(); 
    $movieArray = $imdb->getMovieInfo("$title"); 
    $link = $movieArray["poster_large"]; 
    echo $link; 
} 

Loader() функция:

$.ajax({ 
    type: 'post', 
    url: 'loader.php', 
    data: 'title='+title, 
    success: function(data) { 
      img.src = data; 
    } 
}); 
+0

Вам нужно будет показать HTML, который вы используете, чтобы показать изображение –

+0

вместо этого используйте вместо него корневые относительные пути. – Jai

+0

Пожалуйста, опубликуйте PHP - и включите вывод того, что происходит, когда ваш echo/var_dump путь к файлу. – LeonardChallis

ответ

1

Это выглядит как вопрос с тем, как вы загружаете его. Эти изображения предоставляются через CDN Akamai, и это не нравится рефереру, который он получает.

Вот что возвращается вместо полезной нагрузки изображения.

<HTML><HEAD> 
<TITLE>Referral Denied</TITLE> 
</HEAD><BODY> 
<H1>Referral Denied</H1> 
You don't have permission to access "http&#58;&#47;&#47;ia&#46;media&#45;imdb&#46;com&#47;images&#47;M&#47;MV5BMTM5NjM0ODY1NF5BMl5BanBnXkFtZTcwMjk5NjI0Ng&#64;&#64;&#46;&#95;V1&#46;&#95;SY500&#46;jpg" on this server.<P> 
Reference&#32;&#35;24&#46;24c633b8&#46;1366714063&#46;2a353f15 
</BODY></HTML> 

Я не обнадеживает нарушение чьих-либо условий, но this может быть полезен для вас, я подозреваю, что прохождение пустой реферер будет решить эту проблему, как и при посещении URL изображения непосредственно он работает (и Безразлично» t отправить реферер).

EDIT:

This fiddle рабочий пример того, что я предлагал ранее. Вы заметите, что изображение, напрямую связанное, мертво, но тот, у которого нет реферера, загружается отлично.

+0

Исправлено! Попробуйте еще раз попробовать? используя новый URL-адрес: '89.241.171.100/Prac /' – Namit

+0

Все еще не работает для меня, я думаю, что ваш браузер может теперь кэшировать изображения. Можете ли вы попробовать добавить другой фильм? – calcinai

+0

Он будет работать и с другими дополнительными фильмами, он просто не работает при использовании его через IP – Namit

1

U может использовать Imdb API

Просто запросить данные с: http://imdbapi.org/?id={id}&type=json&plot=simple&episode=1&lang=en-US&aka=simple&release=simple

{ID} будучи ИБМД идентификатор фильма. Тогда u можете получить доступ к изображению с помощью:

$data = json_decode(file_get_contents("http://imdbapi.org/?id={id}&type=json&plot=simple&episode=1&lang=en-US&aka=simple&release=simple")); 
$img = $data->poster; 
Смежные вопросы