我正在一個網站上有一套圖像和第一個圖像就像一個化身..當我想改變頭像(第一張圖片)我做的是我交換第一個圖像名稱與我想用作頭像的新圖像。 我這樣做的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