Este artigo descreve o método de implementação de fazer upload de uma barra de progresso de arquivo em Java. Compartilhe -o para sua referência, como segue:
A coisa é muito simples, principalmente usando o Commons-FileUpload, que possui uma interface de listener de progresso, que pode obter uma atualização em tempo real do tamanho dos arquivos enviados. O que mais posso dizer com isso?
Aqui está o código:
pacote lc.progress; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpSession; importar lc.progress.voSplOnSlistnLists; Sessão HttpSession; public myProgressListener (httpServletRequest req) {session = req.getSession (); fileUploadstatus status = new FileUploadStatus (); session.setAttribute ("status", status); } / * pbytes Read o número de bits leia arquivos até agora * pcOntentLength Tamanho total do arquivo * PITEMS Quantos arquivos estão sendo lidos atualmente * Apenas salve o status do upload de arquivo na sessão em tempo real (aqui uso a classe FileUploadstatus para encapsular) * / public void (Long PByTesread, PContentLength comprimento, Int Pitems. fileUploadstatus status = (fileUploadstatus) session.getAttribute ("status"); status.setpbytesRead (pbytesRead); status.setPContentLength (pcOntentLength); status.setPitems (pitems); }}Em seguida, adicione esse pedaço de código ao serviço de upload ou ação e você pode adicionar o Listener de progresso personalizado a
MyProgressListener getBarListener = new MyProgressListener (req); servletfileUpload upload = new ServletfileUpload (fábrica); upload.setProgressListener (getBarListener);
Por fim, posso usar o JS para acessar continuamente outro servlet para retornar ao status de upload em tempo real. Devido a limitações de espaço, não vou mais postar código. Os leitores interessados podem baixá -lo sozinhos.
Clique aqui para baixar o código de exemplo completo.
Espero que este artigo seja útil para a programação Java de todos.