首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

文件下传过滤类

2012-10-31 
文件上传过滤类package com.mvc.interceptorimport java.io.Fileimport java.io.IOExceptionimport jav

文件上传过滤类

package com.mvc.interceptor;import java.io.File;import java.io.IOException;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;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;import org.apache.commons.io.output.DeferredFileOutputStream;import com.mvc.filter.MVCHttpParams;public class UploadInterceptor extends MVCInterceptorAdapter{@Overridepublic String invoke(MVCHttpParams params) {HttpServletRequest request=params.getRequest();String contexttype=request.getContentType();if(!contexttype.equals("application/x-www-form-urlencoded")){HttpServletResponse response=params.getResponse();HttpSession session=request.getSession();response.setCharacterEncoding("UTF-8");DiskFileItemFactory diskfactory=new DiskFileItemFactory();diskfactory.setSizeThreshold(4096);File f=new File(request.getSession().getServletContext().getRealPath("/")+"temp");if(!f.exists()){f.mkdir();}diskfactory.setRepository(f);ServletFileUpload sfu=new ServletFileUpload();sfu.setFileItemFactory(diskfactory);sfu.setFileSizeMax(3*1024*1024);try {List<FileItem> filelist=sfu.parseRequest(request);for(FileItem item:filelist){if(item.isFormField()){String name=item.getFieldName();request.setAttribute(name, item.getString());if(null==session.getAttribute("UPLOADREQUEST")){session.setAttribute("UPLOADREQUEST", "true");}continue;}else{session.setAttribute("FILEITEM", item);}}} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}return null;}@Overridepublic String doAfter(MVCHttpParams params) {HttpSession session=params.getRequest().getSession();if(session.getAttribute("FILEITEM")!=null){FileItem item=(FileItem)session.getAttribute("FILEITEM");DeferredFileOutputStream dfos=null;try {dfos = (DeferredFileOutputStream)item.getOutputStream();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}File file=dfos.getFile();file.delete();session.removeAttribute("FILEITEM");session.removeAttribute("UPLOADREQUEST");}return null;}}

?

热点排行