本来上传也是要弄进度条,参照网上弄了下,我的项目action是调用别人提供的方法,貌似实现不了,也没深究,直接弄个了遮罩层提示上传,弄个gif在那一直转-。-,不是非要实现进度条可以考虑用遮罩层,坐等会的大神回答。
解决方案 »
- Lucene初级问题
- sqlserver2000 java.lang.NullPointerException
- 请教:网页载入图片不显示 ,谁能指导一下啊?
- org.apache.jasper.JasperException: Unable to compile class for JSP:错误 在线等 急 急!!!
- 关于JSP中SESSION的问题,望解答!
- eclipse启动错误,我找不到那里错误,有那位遇到类似情况,进来看看,帮忙解决一下,不胜感激?
- jsp页面能直接嵌入asp页面吗?
- 新手上路,请多指教,javabean报错
- 关于用JSP读取文本的问题
- "response"可以封装入beans里吗?
- 高分求助:java统计时间间隔问题
- 急需解决的java报错
private List<FileItem> parseRequest(HttpServletRequest servletRequest, String saveDir) throws FileUploadException {
DiskFileItemFactory fac = createDiskFileItemFactory(saveDir);
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setSizeMax(this.maxSize);
/*注册上传进度监听器这里面你就可以记录进度到session中,你前台再用setInterval到另一个action中取session的进度就可以了*/
upload.setProgressListener(new ProgressListener(){
/*第一个参数代表当前已读了多少字节,第二个参数代表整个表单的长度也可以当做文件的总大小,第三个参数是代表已解析到第几个(这里对你不重要)*/
public void update(long readBytes, long contentLength, int items){
HttpSession session=ServletActionContext.getRequest().getSession();
session.setAttribute("currentProgress",readBytes);
session.setAttribute("contentLength",contentLength);
}
});
return upload.parseRequest(createRequestContext(servletRequest));
}前台在用一个setInterval来请求另一个action那个action就从session里取进度就是了。前台的进度条显示可以用jquery的progressbar.js
servletRequest);
upload.setProgressListener(progressListener);
每次上传能够执行FileUploadListener的构造方法,但是过后就没反应了,update方法没执行哦
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="multipart" class="你自己的解析类" scope="default" />
<constant name="struts.multipart.parser" value="multipart" />
class="com.emily.relation.sys.model.MyMultiPartRequest" scope="default" optional="true" />
<constant name="struts.multipart.handler" value="requestParser" />
话说常量名不一样哦
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="jakarta" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default" />
<constant name="struts.multipart.handler" value="jakarta" />