java file 进度条
public class MyProgressListener implements ProgressListener { private HttpSession session; public MyProgressListener(HttpServletRequest req) { session = req.getSession(); FileUploadStatus status = new FileUploadStatus(); session.setAttribute("status", status); } /* * pBytesRead 到目前为止读取文件的比特数 pContentLength 文件总大小 pItems 目前正在读取第几个文件 */ public void update(long pBytesRead, long pContentLength, int pItems) { FileUploadStatus status = (FileUploadStatus) session.getAttribute("status"); status.setPBytesRead(pBytesRead); status.setPContentLength(pContentLength); status.setPItems(pItems); } }
public void uploadFile(HttpServletRequest req, HttpServletResponse rsp) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(2048 * 1024); MyProgressListener getBarListener = new MyProgressListener(req); ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(2 * 1024 * 1024); upload.setHeaderEncoding("UTF-8"); upload.setProgressListener(getBarListener); try { List<FileItem> formList = upload.parseRequest(req); Iterator<FileItem> formItem = formList.iterator(); // 将进度监听器加载进去 while (formItem.hasNext()) { FileItem item = (FileItem) formItem.next(); String originalNamePath = item.getName(); if (originalNamePath == null || originalNamePath.equals("")){continue;} int index = originalNamePath.lastIndexOf("\\"); String originalName = ""; if (index != -1){ originalName = originalNamePath.substring(index + 1); }else{ originalName = originalNamePath; } this.getSession().setAttribute(ORIGINAL_NAME, originalName); if (item.isFormField()){ logger.info("Field Name:" + item.getFieldName()); } else{ String filePostfix = item.getName().substring(item.getName().lastIndexOf(".") + 1).toLowerCase(); if (!(ArraysUtil.isIncludeStrings(new String[] { "bmp", "png", "jpeg", "jpg", "gif" }, filePostfix))) { // 文件格式不对 try { String rt = "{\"statuscode\":401}"; rsp.getWriter().write(rt); break; } catch (Exception e) { } } String icoName = Long.toString(DatetimeUtil.getUniqueTimestamp()); String filenamew = "mulit" + icoName + "." + filePostfix; File file = new File(FileUtil.getTomcatRootPath(req) + File.separatorChar + filenamew); logger.info(FileUtil.getTomcatRootPath(req) + File.separatorChar + filenamew); item.write(file); this.getSession().setAttribute("oafile", filenamew); logger.info("save oafile " + filenamew); try { String rt1 = "{\"statuscode\":200,\"filename\":\"" + filenamew + "\"}"; rsp.getWriter().write(rt1); break; } catch (Exception e) { } } } } catch (FileSizeLimitExceededException e1) { logger.warn("", e1); e1.printStackTrace(); try { String rt = "{\"statuscode\":400}"; rsp.getWriter().write(rt); } catch (IOException e) { logger.warn("", e); } } catch (FileUploadException e2) { logger.warn("", e2); e2.printStackTrace(); } catch (Exception e) { logger.warn("", e); e.printStackTrace(); } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
5. **状态管理**:`FileUploadStatus.java`可能是用于存储和管理文件上传状态的类,比如上传进度、是否上传成功等。这有助于跟踪上传过程,以及在需要时恢复中断的上传。 6. **时间解析**:`PublicTimeParse.java`...
本项目是一个使用Java实现的带有进度条和取消功能的文件上传示例,它利用了Apache的Commons FileUpload库来处理文件上传的过程。Commons FileUpload是Java的一个开源组件,专门用于处理HTTP请求中的多部分/表单数据...
在Java开发中,实现文件上传并提供进度条功能是一项常见的需求,这有助于用户了解文件传输的状态,提升用户体验。本示例中的"Java 文件上传带进度条源码"提供了一个具体的解决方案,适用于使用Tomcat7服务器和Java 7...
本示例“java实现带进度条的文件上传”提供了一个完整的解决方案,结合了HTML、Servlet以及swfupload库,来实现用户友好的文件上传体验,包括实时显示的进度条。 1. **HTML**:HTML是网页的基础,用于构建用户界面...
在Java Web开发中,实现一个带进度条的异步上传功能是常见的需求,尤其是在处理大文件上传时,用户界面的反馈至关重要。这个“java带进度条的异步上传”示例利用了Servlet、Ajax以及可能的JavaScript库,如jQuery,...
在Java web开发中,实现一个带有进度条的文件上传功能是一项常见的需求,它能提供用户友好的交互体验。本文将详细讲解如何结合Ajax、jQuery和Java来实现这一功能。 首先,我们需要理解Ajax(Asynchronous ...
在Java和jQuery的世界里,实现文件上传带进度条的功能是一项常见的需求,特别是在用户交互体验日益重要的今天。这个功能可以提供给用户一个实时反馈,让他们了解文件上传的状态,从而提升用户体验。接下来,我们将...
在IT行业中,实现文件上传并显示进度条是常见的需求,特别是在Web应用中。这个主题“java+ajax上传文件带进度条”聚焦于使用Java后端和Ajax前端技术来完成这一功能。下面将详细介绍如何实现这一功能,以及涉及的关键...
"Common-FileUpload带进度条文件上传"是一个专门处理这种需求的解决方案,它允许用户在上传文件时看到进度条,提供更好的用户体验。下面我们将详细探讨这个主题以及相关知识点。 1. 文件上传的基本原理:在Web开发...
这个"struts2(ssh)带进度条文件上传 demo 的jar包1"可能是为了演示如何实现这一功能,但由于描述中提到权限问题,jar包被分成了三次上传,这里是第一部分。 在实现带进度条的文件上传时,通常需要以下步骤: 1. ...
在Java开发中,当涉及到文件上传功能时,用户体验的一个重要方面是提供文件上传进度条,让用户了解文件上传的进度。本篇文章将详细讲解如何在Java中实现这一功能,特别是使用Apache Commons FileUpload库来实现一个...
Struts2-DWR带进度条文件上传是一种在Web应用程序中实现大文件上传并显示实时进度条的技术组合。Struts2是一个流行的Java MVC框架,用于构建企业级Web应用,而DWR(Direct Web Remoting)是一个JavaScript库,允许在...
总结来说,"extjs java 上传文件进度条"这个主题涉及到前端与后端的交互,需要理解ExtJS组件的使用,熟悉Ajax异步上传,掌握Java服务器处理文件上传的逻辑,以及HTTP协议、JSON通信等相关知识。通过这些技术的结合,...
为了提供良好的用户体验,通常会结合进度条功能,让用户能够实时了解文件上传的状态。在这个场景下,"批量上传文件带进度条"主要涉及的技术点有Java编程语言、多线程、FTP文件传输协议以及用户界面(UI)的设计。 ...
总结,Java Swing 搭配 `java.nio.file` 包可以实现文件拷贝和进度条的结合,为用户提供更好的交互体验。在实际项目中,还可以添加错误处理、取消拷贝等功能,以增强应用程序的健壮性和用户体验。
**SWFUpload 多文件上传带进度条实例详解** SWFUpload 是一款开源的JavaScript库,专门用于在网页上实现文件的多选上传,并且支持显示上传进度条,为用户提供更好的交互体验。在这个实例中,我们将探讨如何在VS2012...
标题中的“Extjs+java+swf多文件上传进度条显示项目”是一个综合性的Web开发实践,涉及到前端的用户界面、后端的数据处理以及文件上传过程中进度反馈的实现。这个项目利用了Extjs库来构建用户界面,Java作为服务器端...
本项目聚焦于实现一个Java Web应用,该应用具备多文件上传、进度条展示、预览以及删除等功能,这对于提升用户体验至关重要。接下来,我们将详细讨论这些知识点。 首先,我们来看“java jsp upload”。Java Server ...
在Android开发中,实现文件上传并展示进度条是一项常见的需求,尤其在用户需要长时间等待的场景下,如上传大文件时。"android 文件上传含进度条"这个标题恰好揭示了我们要实现的功能:在Android应用中,既要能上传...
在Java编程中,大文件上传至FTP(File Transfer Protocol)服务器是一项常见的任务,尤其是在处理大量数据传输时。这个场景中,我们关注的重点是如何在上传过程中显示进度条,并确保该进度条与FTP上传的速度同步,以...