2012-03-11 34 views
0

我使用下面的脚本来实时创建图像,并通过ajax和div显示它们,但是PHP图像头不会被读取,而是显示图像而不是我刚刚获得图像源代码。任何想法如何强制PHP读取标题作为图像?PHP和AJAX图像头不被读取

<?php 
header('Content-Type: image/jpeg'); // JPG picture 
$root = $_SERVER['DOCUMENT_ROOT']; 
require("$root/include/mysqldb.php");      //mysql login details 
require("$root/include/mysql_connect.php");    //mysql connect 

if(!empty($small)) { $size = "50"; $folder = "thumnail_user_images"; } else { $size = "250"; $folder = "large_user_images"; } 



$dice_image = $_GET["image"]; 

if (!file_exists("$root/$folder/$dice_image")) 
{ 
    require("$root/include/image_resizing_function.php");  //create image 
    $image = new SimpleImage(); 
    $image->load("$root/raw_user_images/$dice_image"); 
    $image->resizeToWidth($size); 
    $image->save("$root/$folder/$dice_image"); 
    $image->output(); 


} 

else { 


readfile("$root/$folder/$dice_image"); 


} 

这是阿贾克斯用换出图片:

<script type="text/javascript"> 

var bustcachevar=1 
var loadedobjects="" 
var rootdomain="https://"+window.location.hostname 
var bustcacheparameter="" 

function ajaxpage(url, containerid){ 
var page_request = false 
if (window.XMLHttpRequest) 
page_request = new XMLHttpRequest() 
else if (window.ActiveXObject){ 
try { 
page_request = new ActiveXObject("Msxml2.XMLHTTP") 
} 
catch (e){ 
try{ 
page_request = new ActiveXObject("Microsoft.XMLHTTP") 
} 
catch (e){} 
} 
} 
else 
return false 
page_request.onreadystatechange=function(){ 
loadpage(page_request, containerid) 
} 
if (bustcachevar) 
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime() 
page_request.open('GET', url+bustcacheparameter, true) 
page_request.send(null) 
} 

function loadpage(page_request, containerid){ 
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) 
document.getElementById(containerid).innerHTML=page_request.responseText 
} 

function loadobjs(){ 
if (!document.getElementById) 
return 
for (i=0; i<arguments.length; i++){ 
var file=arguments[i] 
var fileref="" 
if (loadedobjects.indexOf(file)==-1){ 
if (file.indexOf(".js")!=-1){ 
fileref=document.createElement('script') 
fileref.setAttribute("type","text/javascript"); 
fileref.setAttribute("src", file); 
} 
else if (file.indexOf(".css")!=-1){ 
fileref=document.createElement("link") 
fileref.setAttribute("rel", "stylesheet"); 
fileref.setAttribute("type", "text/css"); 
fileref.setAttribute("href", file); 
} 
} 
if (fileref!=""){ 
document.getElementsByTagName("head").item(0).appendChild(fileref) 
loadedobjects+=file+" " 
} 
} 
} 

</script> 
+0

直接在浏览器中输入您的PHP处理程序的URL。如果浏览器显示你的图像,那么图像处理程序工作正常。然后,错误出现在您的JavaScript中。我也推荐你使用一个常用的JavaScript框架。通过这种方式,您可以避免代码中出现异步调用的潜在错误,并依赖经过良好测试的框架。 – CodeZombie 2012-03-11 22:22:52

回答

1

确保没有多余的空格被要求陈述中引用的PHP文件收盘?>后。我遇到了这个问题,并在找到答案之前搔了搔脑袋好几天。