0

URLを取得するはずのこのコードがありますが、何かを出力するため(エラーではありません)

<?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が有効な場合は画像を出力します)...それを機能させる方法はありますか?

4

1 に答える 1

4

imagejpeg()jpeg の生のバイナリ データを出力します。たとえば、 で始まるガベージですJFIF.....<img>html タグは、ロードするファイルの場所を指す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" />

代わりは。

于 2013-04-28T16:10:32.447 に答える