我正在一个网站上有一套图像和第一个图像就像一个化身..当我想改变头像(第一张图片)我做的是我交换第一个图像名称与我想用作头像的新图像。 我这样做的ajax功能,所以我不需要刷新页面后,我这样做。php重命名交换文件名不重新加载图像
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile);
我的问题是后,我做到这一点,我从DIV删除的影像,我再次添加他们在新的秩序,但我认为浏览器的地方保存图像和不重新加载它们,它们会出现在相同订购。只有在我刷新页面后,它们才以正确的顺序出现。 有没有像使浏览器上传图片的解决方案?
先谢谢你了,丹尼尔!
编辑:这是AJAX功能:
function avaPic(offer_id, pic_name, onFinish) {
var request;
if(window.XMLHttpRequest)
request = new XMLHttpRequest();
else
request = new ActiveXObject("Microsoft.XMLHTTP");
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
onFinish();
}
}
request.open("GET", "php/script.php?action=avaPic&offer_id=" + offer_id + "&pic_name=" + pic_name, true);
request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
request.send();
}
,这是PHP:
if($action == "avaPic") {
$offer_id = $_GET["offer_id"];
$pic_name = $_GET["pic_name"];
$filearray = getDirectoryList("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/");
$avafile = $filearray[0];
$temp_name = "temp.jpg";
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile);
}
在onFinish功能,我刷新DIV王氏在希望他们再次重新排序图像新订单,但它们看起来与之前一样,直到我刷新页面,直到我刷新页面
我发现它,如何强制浏览器重新加载图像。
<div>
<img src="img1.jpg" />
<img src="img2.jpg" />
<img src="img3.jpg" />
</div>
取而代之,我必须生成一个带有时间参数的html代码,以便使浏览器重新加载图像。这样<img src='"img1.jpg?" + d.getTime()' />
后只要运行这个jQuery如果你想显示不同的图像,那么您应该更改生成图像标记标记的代码,以将src设置为不同的文件名。重命名文件是这样做的一个非常糟糕的方式。 – GordonM 2012-04-09 10:02:15
你可以更具体请你,我无法理解你的想法。我有一个文件夹例如:img1.jpg,img2.jpg,img3.jpg和1st是头像(img1.jpg)。如果我想将头像更改为img3.jpg,我正尝试将名称img3.jpg与img1.jpg交换,所以img3.jpg将成为头像,因此头像。问题是图像具有相同的名称,所以我认为浏览器不会重新加载它们,因为它们已将其加载到背景中。如果你发现另一个解决方案,我会如何实现这一点,这将是欢迎:) – 2012-04-09 10:07:46
你可以发布你正在使用的JavaScript代码? – Ben 2012-04-09 10:26:39