struts2 上传进度条,后台部分

第一步:新建三个类,这三个类我已经写好,就直接在下面下载附件好了。

ResourceFileUploadStatus.java 
ResourceProgressListener.java
ResourceFileUploadStatusAction.java  如果是注解方式,一定要放在action 或 web 包内否则 struts2 扫描不到

 第二步:修改org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest  的 parseRequest方法,加入以下代码。

  ResourceProgressListener pListener = new ResourceProgressListener(servletRequest);
    upload.setProgressListener(pListener);

 修改后为:

private List<FileItem> parseRequest(HttpServletRequest servletRequest, String saveDir) throws FileUploadException {
    DiskFileItemFactory fac = createDiskFileItemFactory(saveDir);
    ServletFileUpload upload = new ServletFileUpload(fac);
    upload.setSizeMax(this.maxSize);

    ResourceProgressListener pListener = new ResourceProgressListener(servletRequest);
    upload.setProgressListener(pListener);

    return upload.parseRequest(createRequestContext(servletRequest));
  }

 然后在将修改的JakartaMultiPartRequest 放回原处,至此后台部分已经完成。

第三步:前台可用ajax 轮询访问

ResourceFileUploadStatusAction.java 

  便可得到已上传的bytes

猜你喜欢

转载自wicketuser.iteye.com/blog/1631380