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捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 重写的解析器提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后将此数据缓存起来,前端发送异步...
JAVA WEB Upload上传文件带进度条 实例 结果保存数据库 表结构 create table Upload ( id VARCHAR(50), fileName VARCHAR(50), pathName VARCHAR(1000), fileSize VARCHAR(50), createDate VARCHAR(50) );
java swfupload完整webproject 多附件同时上传 进度条
JAVA|JQUERY|多文件上传|进度条|拖拽上传 示例代码 及你想要的一切
与支持标准HTML表单文件上传的任何服务器端平台(PHP,Python,Ruby on Rails,Java,Node.js,Go等)一起使用。 演示版 产品特点 多文件上传: 允许一次选择多个文件并同时上传。 拖放支持: 允许通过从桌面或...
Ajax uploader可以完成在FF3.6+, Safari4+,Chrome中使用XHR达到多文件上传,并提供进度条功能;而在其他浏览器中,退化成基于iframe的文件上传。Ajax uploader为用户提供了很好的体验。官网( ...
多文件上传器使用 Spring Boot 实现带进度条的多文件上传/下载您可以使用 mvn spring-boot:run 运行应用程序
新添加单个文件上传用的是apache的commonfileupload有上传进度条 本工程内所有上传复制过去直接可用. 上传后的文件都保存在根目录下面的upload目录文件夹下 如果不存在此目录请调用com.vsked.fileoperate包下...
jQuery File Upload 是一个 jQuery 图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。 特征: 1、多文件上传: 允许一次选择...
jQuery File Upload 是一个Jquery文件上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。 官网链接:...
与支持标准HTML表单文件上传的任何服务器端平台(PHP,Python,Ruby on Rails,Java,Node.js,Go等)一起使用。 设置 特征 多个文件上传: 允许一次选择多个文件并同时上传。 拖放支持: 允许通过从桌面或文件...
带有单独进度条的多个文件上传。 通过按文件大小、扩展名或 MIME 类型进行验证来进行文件审核。 图像预览和图像裁剪。 JavaScript、PHP、Python、Java、Django、Ruby on Rails、Angular 等的。 20 多种语言, 。 ...
File Upload Component(文件上传带有进度条和监控功能)
概述jQuery Upload File插件提供了带有进度条的多个文件上传功能,可与支持标准HTML表单文件上传功能的任何服务器端平台(Google App Engine,PHP,Python,Ruby on Rails,Java等)一起使用。演示版文献资料
Android 文件复制带进度条效果展示,具体代码已上传,请下载查看,File 文件管理复制移动功能,仅供参考
ajax file upload 0.4.0,基于Java的文件上传组件,支持上传文件进度条显示
一个基于Java的文件上传程序。 显示当前正在上传的每个文件的进度条。 还为每个待处理的图像制作缩略图。 还支持拖动n拖放。
这里我希望做成异步上传,并且有进度条,响应有状态码,视频连接,缩略图。 服务端响应 { "thumbnail": "/slsxpt//upload/thumbnail/fdceefc.jpg", "success": true, "link": "/slsxpt//upload/video/fdceefc....
找到类: UploadServlet.java 修改代码(第49行): File temp = new File("/home/wp/tmp/uploadfile"); 将路径“/home/wp/tmp/uploadfile”更改为您的本地文件路径。 将其部署到 Web 容器(如 Tomcat)。...
Web应用中常需要提供文件上传的功能。典型的场景包括用户头像上传、相册图片上传等。当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了。 在PHP 5.4以前,实现这样的进度条并不容易,主要有...