2013-04-28 4 views
0

У меня есть этот код, который должен получить URL из я считаю, это работает, потому что он не может выводить что-то (не ошибка)file_get_contents() выводит текст вместо изображения

<?php 
    $url = $_GET['image']; 
    $image = imagecreatefromstring(file_get_contents($url)); 
    header('content-type: image/jpeg'); 
    echo "<img scr=\"" . imagejpeg($image, null, 100) . "\" />"; 
    ?> 

Хотя вместо образа, он выводит текст ... Может быть, проблема в коде обработки AJAX:

function showImage(str) { 

    if (str.length == 0) { 
     document.getElementById("show_image_input").innerHTML=""; 
     return; 
    } 

    if (window.XMLHttpRequest) { 
     xmlhttp=new XMLHttpRequest(); 
     xmlhttp.onreadystatechange=function() { 

     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     document.getElementById("show_image_input").innerHTML=xmlhttp.responseText; 
     } 
     } 

    xmlhttp.open("GET","parts/display_input.php?image="+str,true); 
    xmlhttp.send(); 
} 
} 

Но это делает его работу (вывод изображения, если URL действителен) ... Любые идеи, как сделай так, чтоб это работало?

+0

Вы выводите HTML, когда вы передали заголовок, который идентифицирует страницу как изображение в формате JPEG? – animuson

+0

Вау, рекурсия в html –

ответ

4

imagejpeg() выводит необработанные двоичные данные jpeg, например. мусор, который начинается с JFIF...... <img> html tags wait a URL Адрес местонахождения файла для загрузки. Этот код никогда не будет работать так, как есть.

Попробуйте

image.php:

<?php 

$url = $_GET['image']; 
$image = imagecreatefromstring(file_get_contents($url)); 
header('content-type: image/jpeg'); 
imagejpeg($image) 

HTML:

<img src="image.php?image=kittens.gif" /> 

вместо этого.

Смежные вопросы