使用php和ajax更改图像而无需重新加载

时间:2013-08-02 13:27:21

标签: php ajax image-uploading

我正在尝试编写代码,让用户使用php上传他们的个人资料图片。我希望在不重新加载页面的情况下更新图像。我尝试过使用ajax来做到这一点。 我的ajax代码是:

  function f()
  {

    var ajaxRequest;  // The variable that makes Ajax possible!

    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){

              x=document.getElementById("img");  //Find the element
             x.innerHTML=ajaxRequest.responseText;  //Change the content

        }
    }

    ajaxRequest.open("POST", "Uploadimage.php", true);
    ajaxRequest.send(); 
}

Uploadimage.php是上传图像并将其移动到文件夹中的文件。$ _FILES具有文件的详细信息(文件名,类型等...)。 上面的代码不起作用,即图像没有得到更新。请帮我解决这个问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

我个人只会返回个人资料pic的新网址名称,并在成功时更改个人资料图片的src。如:

x = document.getElementById('img'); // If this is the <img> tag
x.src = ajaxRequest.responseText;

请注意,新图片的网址名称需要一个新的网址,否则我认为任何浏览器都不会尝试重新加载图片,无论服务器设置的缓存规则如何。