這幾天在做一個圖片上傳功能,原本想用ajax上傳圖片實現即時重新整理,可是一直實現不了,唉。
後來用了iframe架構來實現了,不過這個用這架構卻存在一個問題,當我吧圖片上傳以後我要把上傳的路徑返回到這架構中,那麼怎麼取出來,開始我把值直接輸出到iframe中,但是我去取出路徑的時候一直沒反應,一直在網上查看資料,但是各種版本就是沒有一個全面的講解怎麼使用iframe上傳圖片然後實現即時重新整理的功能,只能自己研究了。大多數都是說怎麼上傳就可以了,這個我也會,都斷在這還真讓人難受,只能自己研究了
既然iframe中上傳成功後輸出值到頁面中,無法取出來,試了N中方法,查了N多資料,還真是讓人蛋疼。
後來在iframe中加個src,再在圖片上傳成功後輸出值寫成一條簡單的javascript語句輸出就OK了,嘿嘿。總結一下吧:
html代碼:
<iframe id="upload_target" name="upload_target" src="upload.php" style="width:0;heigth:0;overflow:hidden;border:0;position: absolute; left:-500px;"></iframe> //iframe設定成隱藏的,src連結的頁面為圖片上傳的後台檔案頁面,不過加不加影響都不大,只不過為了更精確而已<img id="tag_img" src="" /><form enctype="multipart/form-data" action="upload.php" method="post" target="upload_target"> <input type="file" name="userfile" class="file" value="" /> <input type="submit" name="uploadimg" value="上傳" /></form> //表單的那麼值對應著空架構的那麼值,提交後跳轉到空架構中,這樣就不對父視窗頁面進行重新整理了
提交到後台upload.php頁面驗證後。都會有一個自己設定的路徑產生
那麼我們更新圖片成功後,就可以把這個路徑拿出來,通過JS改變父視窗中圖片框中圖片路徑,重新賦值一下,這樣就相當於是重新整理一下地址了,而不用每次更新成功後都得去資料庫把儲存的路徑地址取出來更新了。
這裡我唯寫要返回的js代碼
echo "<script type='text/javascript'>window.parent.document.getElementByIdx_x('tag_img').setAttribute('src','$updurl');</script>"; //這就是在架構中輸出一段js代碼,然後操作父架構中圖片地址重新整理成我上傳的圖片地址,$updurl為上傳圖片的地址
這樣就能輕鬆實現圖片上傳無重新整理頁面,且圖片實現即使重新整理了
以上這篇PHP+iframe圖片上傳實現即時重新整理效果就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。