-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

個人的には、プロファイル写真の新しい URL 名のみを返し、成功時にプロファイル写真の src を変更します。そのような:

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

新しい写真のURL名には新しいURLが必要になることに注意してください。そうしないと、サーバーによって設定されたキャッシュルールに関係なく、ブラウザーが写真をリロードしようとしないと思います。

于 2013-08-02T13:46:08.247 に答える