common-fileupload組件

2.common-fileupload組件挺好用的,也能夠上傳大文件,我試過,300M以上的文件上傳本地傳非常快,異地測試也能夠上傳成功.首先要下載org.apache.commons.fileupload包和org.apache.commons.io包下面是我的servletpackage com.kinstar.issuing.action; import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletException;import java.io.*;import java.sql.SQLException;import java.util.*;import java.text.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.regex.*;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.DiskFileUpload;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import com.kinstar.issuing.objects.t_user;import com.kinstar.issuing.operation.UserOperation;import com.kinstar.issuing.program.programService;import com.kinstar.issuing.session.SessionGloble;import com.kinstar.issuing.util.StringUtil;/** * @version  1.0 * @author gyf */public class uploadProgramAction extends HttpServlet{  private static final String CONTENT_TYPE = "text/html; charset=GB2312";   /**  * 處理GET請求  */  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    doPost(request,response);  }   /**  * 響應POST請求  */  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   // 變量定義    response.setContentType(CONTENT_TYPE);    HttpSession modifysession=request.getSession();    SessionGloble logonUser;    logonUser=(SessionGloble)modifysession.getAttribute("UserInfo");       if(logonUser==null){       response.sendRedirect("mainindex.jsp");    }    t_user userinfo=new t_user();    UserOperation user=null;    try {     user = new UserOperation();    } catch (Exception e1) {    // TODO 自動生成 catch 塊    e1.printStackTrace();    }    try {     userinfo=user.getUser(logonUser.getUserId());    } catch (Exception e2) {    // TODO 自動生成 catch 塊    e2.printStackTrace();    }     //System.out.println("figure="+userinfo.getUserFigure());     PrintWriter out=response.getWriter();     DateFormat updf = new SimpleDateFormat("yyyyMMddHHmm");     String updateTime = updf.format(new Date());     int isNeed = 0;     String IsCheck="0";      //省農行用戶上傳的節目必需顯示,且審批已經合格     if(userinfo.getUserFigure().equals("1")){     isNeed = 1;     IsCheck = "1";     }     else{     isNeed = 0;     IsCheck = "0";     }    int type=0;    String avaTime="";    String screen="";    int fileTime=0;    int fileTimeReal=0;    int circle=0;    String picSwitch="";    String deleState="1";    String backPic="";       String fieldName="";    String finalName="";    String fileNameReal="";    long size=0;    String name="";     try {    DiskFileUpload fu = new DiskFileUpload();    // 設置允許用戶上傳文件大小,單位:字節,這裏設爲2m    fu.setSizeMax(5*1024*1024*1024);    // 設置最多隻允許在內存中存儲的數據,單位:字節    fu.setSizeThreshold(10*1024*1024);    // 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬盤的目錄    fu.setRepositoryPath("C://WINDOWS//Temp//");    //開始讀取上傳信息    List fileItems = fu.parseRequest(request);    //依次處理每個上傳的文件    Iterator iter = fileItems.iterator();          //正則匹配,過濾路徑取文件名    String regExp=".+////(.+)$";     //過濾掉的文件類型    String[] errorType={".exe",".com",".cgi",".asp"};         Pattern p = Pattern.compile(regExp);    StringUtil su = new StringUtil();          while (iter.hasNext()) {      FileItem item = (FileItem)iter.next();           if(item.isFormField()) {       // 獲得表單域的名字        fieldName = item.getFieldName();        // 如果表單域的名字是name…        if(fieldName.equals("type"))            type = Integer.parseInt(item.getString());             }      if (!item.isFormField()) {       name = item.getName();       size = item.getSize();       if((name==null||name.equals("")) && size==0)        continue;        Matcher m = p.matcher(name);        boolean result = m.find();        if (result){        for (int temp=0;temp
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章