/* * FileUploadFilter.java * * Created on 1. Ĩervenec 2007, 22:43 */ package cz.palat.bs.faces; import cz.palat.bs.ejb.ConfigurationManager; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.ejb.EJB; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * * @author pavel * @version */ public class FileUploadFilter implements Filter { @EJB private ConfigurationManager conf_manager; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest hRequest = (HttpServletRequest)request; //Check whether we're dealing with a multipart request boolean was_committed=response.isCommitted(); if (was_committed) { System.err.println("Response is already commited: " + hRequest.getRequestURL() + "; URI: " + hRequest.getRequestURI()); } else { try { response.setBufferSize(64000); } catch (IllegalStateException e) { System.err.println("Can't increase response buffer: " + e); } } String contentHeader = hRequest.getHeader("content-type"); boolean isMultipart = ( contentHeader != null && contentHeader.indexOf("multipart/form-data") != -1); int max_size=5000000; String temp_dir="/tmp"; if(isMultipart == false){ chain.doFilter(request,response); }else{ FileUploadRequestWrapper wrapper = new FileUploadRequestWrapper(max_size,temp_dir, hRequest); chain.doFilter(wrapper,response); } } public void init(FilterConfig filterConfig) throws ServletException { } public void destroy() { } }