A temporary solution: Overide multipartFilter to put multipartRequest into session(Put this class anywhere in application source):
| @Startup | @Scope(APPLICATION) | @Name("org.jboss.seam.web.multipartFilter") | @Install(precedence = Install.APPLICATION) | @BypassInterceptors | @Filter(within={"org.jboss.seam.web.ajax4jsfFilter", "org.jboss.seam.web.exceptionFilter"}) | public class MonitoredMultipartFilter extends MultipartFilter { | | @Override | public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) | throws IOException, ServletException { | if (!(response instanceof HttpServletResponse)) { | chain.doFilter(request, response); | return; | } | | final HttpServletRequest httpRequest = (HttpServletRequest) request; | | if (isMultipartRequest(httpRequest)) { | processMultipart(httpRequest, response, chain); | } else chain.doFilter(request, response); | } | | private void processMultipart(HttpServletRequest httpRequest, ServletResponse response, FilterChain chain) | throws IOException, ServletException { | | MultipartRequest multipartRequest = new MultipartRequest(httpRequest, getCreateTempFiles(), getMaxRequestSize()); | HttpSession httpSession = httpRequest.getSession(false); | if (httpSession != null) { | httpSession.setAttribute("MULITIPART_REQUESET", multipartRequest); | } | | chain.doFilter(multipartRequest, response); | | } | | private boolean isMultipartRequest(HttpServletRequest request) { | if (!"post".equals(request.getMethod().toLowerCase())) { | return false; | } | | String contentType = request.getContentType(); | if (contentType == null) { | return false; | } | | if (contentType.toLowerCase().startsWith(MULTIPART)) { | return true; | } | | return false; | } | } | And in the backing seam component: | @In(value="MULITIPART_REQUESET",required=false) private MultipartRequest multipartRequest; | private static final String UPLOAD_COMPONENT_ID_IN_HTML = "uploadForm:upload"; | | @WebRemote | public Integer uploadPercentage() { | int uploadsize = multipartRequest.getFileSize(UPLOAD_COMPONENT_ID_IN_HTML); | int totalsize = multipartRequest.getContentLength(); | if (uploadsize>=0 && totalsize>=0) { | Integer progress = (int)Math.floor(((double)uploadsize / (double) totalsize) * 100.0); | return progress; | } else return null; | } | Now seam remoting can access uploadPercentage() method to get the progress. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4098102#4098102 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4098102 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user