我正在尝试编写代码,让用户使用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具有文件的详细信息(文件名,类型等...)。 上面的代码不起作用,即图像没有得到更新。请帮我解决这个问题。 谢谢。
答案 0 :(得分:0)
我个人只会返回个人资料pic的新网址名称,并在成功时更改个人资料图片的src。如:
x = document.getElementById('img'); // If this is the <img> tag
x.src = ajaxRequest.responseText;
请注意,新图片的网址名称需要一个新的网址,否则我认为任何浏览器都不会尝试重新加载图片,无论服务器设置的缓存规则如何。