我有这个代码应该从中获取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();
}
}
但它确实是它的工作(输出图像,如果网址有效)...... 任何想法如何使它工作?
答案 0 :(得分: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" />
代替。