-1

我正在尝试编写代码让用户使用 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 包含文件的详细信息(文件名、类型等)。上面的代码不起作用,即图像没有更新。请帮我解决这个问题。谢谢你。

4

1 回答 1

0

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

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

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

于 2013-08-02T13:46:08.247 回答