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 。此代码永远不会按原样工作。

尝试

图像.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 回答