Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法(附demo源碼下載)
本文實(shí)例講述了Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
東西很簡(jiǎn)單,主要用到commons-fileupload,其中有一個(gè)progressListener的接口,該接口可以實(shí)現(xiàn)實(shí)時(shí)更新已上傳文件的大小,有了這個(gè)還說(shuō)什么呢?
這里給出代碼:
package lc.progress; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import lc.progress.vo.fileUploadStatus; import org.apache.commons.fileupload.ProgressListener; public class myProgressListener implements ProgressListener { private HttpSession session; public myProgressListener(HttpServletRequest req) { session=req.getSession(); fileUploadStatus status = new fileUploadStatus(); session.setAttribute("status", status); } /* pBytesRead 到目前為止讀取文件的比特?cái)?shù) * pContentLength 文件總大小 * pItems 目前正在讀取第幾個(gè)文件 * 只要在session中實(shí)時(shí)保存文件上傳的狀態(tài)(這里我用fileUploadStatus類來(lái)封裝) */ public void update(long pBytesRead, long pContentLength, int pItems) { // TODO Auto-generated method stub fileUploadStatus status = (fileUploadStatus) session.getAttribute("status"); status.setPBytesRead(pBytesRead); status.setPContentLength(pContentLength); status.setPItems(pItems); } }
然后在上傳得servlet或action中加入這樣一段代碼,就可以把自定義的progressListener添加進(jìn)去
myProgressListener getBarListener = new myProgressListener(req); ServletFileUpload upload = new ServletFileUpload(factory); upload.setProgressListener(getBarListener);
最后就是通過(guò)js來(lái)不斷的訪問(wèn)另一個(gè)servlet來(lái)實(shí)時(shí)返回上傳狀態(tài)就可以了,限于篇幅我就不再貼代碼了,有興趣的讀者可以自己下載來(lái)看。
完整實(shí)例代碼點(diǎn)擊此處本站下載。
希望本文所述對(duì)大家Java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)BFS廣搜法解決迷宮問(wèn)題
廣搜BFS的基本思想是: 首先訪問(wèn)初始點(diǎn)v并將其標(biāo)志為已經(jīng)訪問(wèn)。接著通過(guò)鄰接關(guān)系將鄰接點(diǎn)入隊(duì)。然后每訪問(wèn)過(guò)一個(gè)頂點(diǎn)則出隊(duì)。按照順序,訪問(wèn)每一個(gè)頂點(diǎn)的所有未被訪問(wèn)過(guò)的頂點(diǎn)直到所有的頂點(diǎn)均被訪問(wèn)過(guò)。廣度優(yōu)先遍歷類似與層次遍歷2022-04-04java 中ArrayList迭代的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了java 中ArrayList迭代的兩種實(shí)現(xiàn)方法的相關(guān)資料,Iterator與for語(yǔ)句的結(jié)合,需要的朋友可以參考下2017-09-09java8快速實(shí)現(xiàn)List轉(zhuǎn)map 、分組、過(guò)濾等操作
這篇文章主要介紹了java8快速實(shí)現(xiàn)List轉(zhuǎn)map 、分組、過(guò)濾等操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

Spring?BeanFactory容器的構(gòu)建和使用示例詳解

Java注解詳解及實(shí)現(xiàn)自定義注解的方法