因为struts2漏洞由Struts2升级为struts2.3.15.1后出现的问题 漏洞bugJ2EEStruts2 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 be.telio.mediastore.ui.upload.GarryMultiPartRequest.cleanUp你这个类是干嘛的,接口? be.telio.mediastore.ui.upload.GarryMultiPartRequest.cleanUp你这个类是干嘛的,接口?这个是Struts2里面的接口,网上说这个是清除最后请求的一个接口来的。 这个是Struts2里面的接口,网上说这个是清除最后请求的一个接口来的。报这个错误是执行完所有代码后,return SUCCESS执行Struts2代码->struts.xml确定跳转页面的过程中报错。 这个是Struts2的接口?这个看上去更像是第三方的文件上传解析类,你项目中应该是用了这个类替换了struts2默认的org.apache.struts2.multipart.JakartaMultiPartRequest这个文件上传的解析类如果没什么必要不用去换它的 直接是利用dwr跟Strut2结合起来实现上传进度条的,struts.xml配置是<constant name="struts.multipart.parser" value="be.telio.mediastore.ui.upload.GarryMultiPartRequest" /> <constant name="struts.multipart.handler" value="be.telio.mediastore.ui.upload.GarryMultiPartRequest" />报上面的错误也就是这个引起的,或者有没有好的上传进度条可以介绍。 楼主要实现大文件上传的进度条没必要用什么dwr和第三方的。因为struts2文件上传的解析类中已经提供了文件进度监听器你只要自己写个类继承org.apache.struts2.multipart.JakartaMultiPartRequest;把里面的源码复制到你的类中,只要针对parseRequest方法加入自己的监听器就行了,这里是源码里的parseRequest方法,前台可以用jquery的progressBar的进度条插件就可以了(插件很简单你google下就知道了)private List<FileItem> parseRequest(HttpServletRequest servletRequest, String saveDir) throws FileUploadException { DiskFileItemFactory fac = createDiskFileItemFactory(saveDir); ServletFileUpload upload = new ServletFileUpload(fac); upload.setSizeMax(maxSize);/*把进度监听器放进去,文件上传的源码中每次上传的进度都会反映到这个监听器里面在这里把进度放入session中*/ upload.setProgressListener(new ProgressListener(){/*第一个参数是当前总共读取的字节数,第二个参数是当前提交的内容总大小(这里就包括了整个表单的内容大小不仅是文件的大小),第三个参数是当前已经多了几次了*/ public void upload(long readBytes,long contentLength,int item){ HttpSession session=ServletActionContext.getRequest().getSession();/*把当前总共读取到的字节数以及总大小都放入session中,前台就可以用ajax每0.5秒从session中取出进度*/ session.setAttribute("currentProgress",readBytes); session.setAttribute("contentLength",contentLength); } }); return upload.parseRequest(createRequestContext(servletRequest)); }前端你用ajax每0.5或1秒去另一个action中取session中的currentProgress就行了,我以前用的是jquery的progressBar进度条插件把取到的当前进度和总大小设置进去进度条插件就能不断显示进度了 楼主要实现大文件上传的进度条没必要用什么dwr和第三方的。因为struts2文件上传的解析类中已经提供了文件进度监听器你只要自己写个类继承org.apache.struts2.multipart.JakartaMultiPartRequest;把里面的源码复制到你的类中,只要针对parseRequest方法加入自己的监听器就行了,这里是源码里的parseRequest方法,前台可以用jquery的progressBar的进度条插件就可以了(插件很简单你google下就知道了)private List<FileItem> parseRequest(HttpServletRequest servletRequest, String saveDir) throws FileUploadException { DiskFileItemFactory fac = createDiskFileItemFactory(saveDir); ServletFileUpload upload = new ServletFileUpload(fac); upload.setSizeMax(maxSize);/*把进度监听器放进去,文件上传的源码中每次上传的进度都会反映到这个监听器里面在这里把进度放入session中*/ upload.setProgressListener(new ProgressListener(){/*第一个参数是当前总共读取的字节数,第二个参数是当前提交的内容总大小(这里就包括了整个表单的内容大小不仅是文件的大小),第三个参数是当前已经多了几次了*/ public void upload(long readBytes,long contentLength,int item){ HttpSession session=ServletActionContext.getRequest().getSession();/*把当前总共读取到的字节数以及总大小都放入session中,前台就可以用ajax每0.5秒从session中取出进度*/ session.setAttribute("currentProgress",readBytes); session.setAttribute("contentLength",contentLength); } }); return upload.parseRequest(createRequestContext(servletRequest)); }前端你用ajax每0.5或1秒去另一个action中取session中的currentProgress就行了,我以前用的是jquery的progressBar进度条插件把取到的当前进度和总大小设置进去进度条插件就能不断显示进度了我自己写了一个UploadUtil实现类,继承了JakartaMultiPartRequest这个类。自己实现的UploadUtil怎样才能起到监听作用?? 求助明天的面试题,大家帮看看 -----使用java语言,编写在有向图中查找最小路径的算法 String...是什么东西?? 该怎么定义使用对象数组 事件的问题,请求帮助。 这段代码 提示这个错误为什么 ,请帮忙看看 想换程序学习的网友请进。 Java中,怎么获得HTTP请求/响应的头信息?? 200分请教有关公式解析的问题(决不失言) 这段程序有错么? 关于volatile可见性的遇到的问题 单例模式和静态对象的销毁 谁能刚给我解释一下类CopyServer中的while((line=brin.readLine())!=null)什么时候成立
如果没什么必要不用去换它的
<constant name="struts.multipart.parser" value="be.telio.mediastore.ui.upload.GarryMultiPartRequest" />
<constant name="struts.multipart.handler" value="be.telio.mediastore.ui.upload.GarryMultiPartRequest" />
报上面的错误也就是这个引起的,或者有没有好的上传进度条可以介绍。
把里面的源码复制到你的类中,只要针对parseRequest方法加入自己的监听器就行了,这里是源码里的parseRequest方法,前台可以用jquery的progressBar的进度条插件就可以了(插件很简单你google下就知道了)private List<FileItem> parseRequest(HttpServletRequest servletRequest, String saveDir) throws FileUploadException {
DiskFileItemFactory fac = createDiskFileItemFactory(saveDir);
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setSizeMax(maxSize);
/*把进度监听器放进去,文件上传的源码中每次上传的进度都会反映到这个监听器里面
在这里把进度放入session中*/
upload.setProgressListener(new ProgressListener(){
/*第一个参数是当前总共读取的字节数,第二个参数是当前提交的内容总大小(这里就包括了整个表单的内容大小不仅是文件的大小),第三个参数是当前已经多了几次了*/
public void upload(long readBytes,long contentLength,int item){
HttpSession session=ServletActionContext.getRequest().getSession();
/*把当前总共读取到的字节数以及总大小都放入session中,前台就可以用ajax每0.5秒从session中取出进度*/
session.setAttribute("currentProgress",readBytes);
session.setAttribute("contentLength",contentLength);
}
});
return upload.parseRequest(createRequestContext(servletRequest));
}前端你用ajax每0.5或1秒去另一个action中取session中的currentProgress就行了,我以前用的是jquery的progressBar进度条插件把取到的当前进度和总大小设置进去进度条插件就能不断显示进度了
把里面的源码复制到你的类中,只要针对parseRequest方法加入自己的监听器就行了,这里是源码里的parseRequest方法,前台可以用jquery的progressBar的进度条插件就可以了(插件很简单你google下就知道了)private List<FileItem> parseRequest(HttpServletRequest servletRequest, String saveDir) throws FileUploadException {
DiskFileItemFactory fac = createDiskFileItemFactory(saveDir);
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setSizeMax(maxSize);
/*把进度监听器放进去,文件上传的源码中每次上传的进度都会反映到这个监听器里面
在这里把进度放入session中*/
upload.setProgressListener(new ProgressListener(){
/*第一个参数是当前总共读取的字节数,第二个参数是当前提交的内容总大小(这里就包括了整个表单的内容大小不仅是文件的大小),第三个参数是当前已经多了几次了*/
public void upload(long readBytes,long contentLength,int item){
HttpSession session=ServletActionContext.getRequest().getSession();
/*把当前总共读取到的字节数以及总大小都放入session中,前台就可以用ajax每0.5秒从session中取出进度*/
session.setAttribute("currentProgress",readBytes);
session.setAttribute("contentLength",contentLength);
}
});
return upload.parseRequest(createRequestContext(servletRequest));
}前端你用ajax每0.5或1秒去另一个action中取session中的currentProgress就行了,我以前用的是jquery的progressBar进度条插件把取到的当前进度和总大小设置进去进度条插件就能不断显示进度了我自己写了一个UploadUtil实现类,继承了JakartaMultiPartRequest这个类。自己实现的UploadUtil怎样才能起到监听作用??