用iframe實(shí)現(xiàn)不刷新整個(gè)頁(yè)面上傳圖片的實(shí)例
經(jīng)常用到上傳圖片即時(shí)預(yù)覽的功能,實(shí)現(xiàn)方式很多,用flash+js實(shí)現(xiàn)的比較多,今天遇到同事不想用flash之類(lèi)也不想用網(wǎng)上的插件,那么我給了他一種解決辦法:
思路:
1. 頁(yè)面上傳圖片的部分放到一個(gè)iframe中,iframe設(shè)置無(wú)邊框無(wú)滾動(dòng)條,和所嵌入的頁(yè)面風(fēng)格一致,根據(jù)需要設(shè)置固定大小
2. 在iframe中提交上傳圖片的表單,提交后再次返回原頁(yè)面(iframe所指向的頁(yè)面)并從服務(wù)器帶回剛上傳的圖片地址,調(diào)用父頁(yè)面的js代碼加載圖片
3. 如果用到要進(jìn)度條等效果,就在表單提交后,在servlet一端輸出進(jìn)度條,然后一直發(fā)送調(diào)用js腳本,及時(shí)改變頁(yè)面內(nèi)容。其他功能諸如取消等功能可以參考推送
下面的代碼實(shí)現(xiàn)了基本的文件上傳:
index.jsp頁(yè)面里嵌入一個(gè)文件上傳的頁(yè)面 _uploadpic.jsp
index.jsp:
... <script type="text/javascript"> /* param imgPath:img path of uploaded this function will show the uploaded img in div(id=show_img_div) */ function showUploadImg(imgPath){ if(imgPath=="")return; document.getElementById("show_img_div").innerHTML="<img src='"+imgPath+"'/>"; } </script> <body> <iframe scrolling="no"width="300" height="100" src="_uploadpic.jsp"></iframe> <!-- use to show img(uploaded) --> <div id="show_img_div"></div> ...
_uploadpic.jsp:
... <body onload="javascript:window.parent.showUploadImg('${img}');"><!--'${img}' request或者session中的圖片地址(從服務(wù)器傳遞來(lái)的) --> <form method="post" id="upload_form" action="${pageContext.request.contextPath }/servlet/IframeTestImageServlet" enctype="multipart/form-data"> <input type="file" name="pic"/><br/><input type="submit" value="upload"/> </form> </body> ...
servlet:(處理圖片上傳的servlet)
//處理上傳的圖片 .... 代碼多 此處略去 //把剛上傳的圖片在服務(wù)器中的地址返回到客戶端 request.setAttribute("img",request.getContextPath()+"/img/mm.jpg");// '/img/mm.jpg'表示剛上傳圖片在服務(wù)器中的地址 request.getRequestDispatcher("/_uploadpic.jsp").forward(request, response);
以上這篇用iframe實(shí)現(xiàn)不刷新整個(gè)頁(yè)面上傳圖片的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
js實(shí)現(xiàn)樓層效果的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)樓層效果的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07原生微信小程序開(kāi)發(fā)中 redux 的使用詳解
這篇文章主要介紹了原生微信小程序開(kāi)發(fā)中 redux 的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02javascript instanceof 內(nèi)部機(jī)制探析
在 JavaScript 中,可以用 instanceof 來(lái)判斷一個(gè)對(duì)象是不是某個(gè)類(lèi)或其子類(lèi)的實(shí)例。2010-10-10