ファイルのアップロード


次はfileuploadでファイルをアップロードする簡単なツールクラスです.
Javaコード
  • import java.util.List;   
  • import javax.servlet.http.HttpServletRequest;   
  • import org.apache.commons.fileupload.FileItem;   
  • import org.apache.commons.fileupload.FileItemFactory;   
  • import org.apache.commons.fileupload.FileUpload;   
  • import org.apache.commons.fileupload.FileUploadBase;   
  • import org.apache.commons.fileupload.disk.DiskFileItemFactory;   
  •   
  • public class UpLoadUtil2 {   
  •        
  •     public static String upload(HttpServletRequest request){   
  •         String msg = null;   
  •            
  •         try{   
  •             boolean isMultipart = FileUploadBase.isMultipartContent(request);   
  • if(isMultipart){//Formがmultipart formであるかどうかを判断する
  •                 FileItemFactory fileItemFactory = new DiskFileItemFactory();//工場設置
  •                 FileUpload fileUpload = new FileUpload(fileItemFactory);//アップロードコンポーネント
  •                    
  • //ここは中国語のファイル名処理のコードで、実は1行だけあって、setHeaderEncodingは
  •                 fileUpload.setHeaderEncoding("utf-8");   
  •                    
  •                 List fileItemList = fileUpload.parseRequest(request);//解析アップロードファイルパケット
  •                    
  •                 for(int i=0;i
  •                     FileItem fileItem = (FileItem)fileItemList.get(i);//各アップロードファイル
  • を巡回する
  •                        
  • if(!file Item.isFormField(){//アップロードされたファイルかどうかを判断
  •                         String fullFileName = fileItem.getName();//ファイルフルネーム
  •                         String fileName = getFileName(fullFileName);//ファイル名
  • //設定ファイルサーバに格納されたパス
  •                         String path = request.getRealPath("/upload");   
  •                         if(!new File(path).isDirectory()/存在しない場合は、ディレクトリ
  • を作成します.
  •                             new File(path).mkdirs();    
  •                         File file = new File(path, fileName);   
  •                         fileItem.write(file);   
  •                            
  •                         msg = file.getAbsolutePath();   
  •                     }   
  •                 }   
  •             }   
  •         }catch(Exception e){   
  •             e.printStackTrace();   
  •         }   
  •            
  •         return msg;   
  •     }   
  •        
  •     public static String getFileName(String fullFileName){   
  •         String fileName = fullFileName.substring(fullFileName.lastIndexOf("//")+1);   
  •         return fileName;   
  •     }   
  •   
  • }  
  • import java.util.List;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileItemFactory;
    import org.apache.commons.fileupload.FileUpload;
    import org.apache.commons.fileupload.FileUploadBase;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    
    public class UpLoadUtil2 {
    	
    	public static String upload(HttpServletRequest request){
    		String msg = null;
    		
    		try{
    			boolean isMultipart = FileUploadBase.isMultipartContent(request);
    			if(isMultipart){// Form  multipart form
    				FileItemFactory fileItemFactory = new DiskFileItemFactory();// 
    				FileUpload fileUpload = new FileUpload(fileItemFactory);// 
    				
    				// , ,setHeaderEncoding 
    				fileUpload.setHeaderEncoding("utf-8");
    				
    				List fileItemList = fileUpload.parseRequest(request);// 
    				
    				for(int i=0;i<fileItemList.size();i++){
    					FileItem fileItem = (FileItem)fileItemList.get(i);// 
    					
    					if(!fileItem.isFormField()){// 
    						String fullFileName = fileItem.getName();// 
    						String fileName = getFileName(fullFileName);// 
    						// 
    						String path = request.getRealPath("/upload");
    						if(!new File(path).isDirectory())// , 
    							new File(path).mkdirs(); 
    						File file = new File(path, fileName);
    						fileItem.write(file);
    						
    						msg = file.getAbsolutePath();
    					}
    				}
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		
    		return msg;
    	}
    	
    	public static String getFileName(String fullFileName){
    		String fileName = fullFileName.substring(fullFileName.lastIndexOf("//")+1);
    		return fileName;
    	}
    
    }

    上記uploadメソッドにrequestオブジェクトパラメータが入力され、fileuploadコンポーネントはrequestを解析することによってアップロードファイルを得る.
    次は、アップロードファイルリクエストを送信するためのページのコードの一部です.
    Htmlコード
  • <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  •   
  •   
  •       
  •         My JSP 'uploadExcel.jsp' starting page  
  •           
  •             function tosubmit(){   
  •                 var filename = document.getElementById('fileid').value;   
  •                 if(filename =='' || filename == null){   
  • alert(「アップロードするファイルを先に選択してください」);  
  •                 }else{   
  •                     window.document.form1.submit();   
  •                 }   
  •             }   
  •           
  •       
  •   
  •       
  •         
  •             action="<%=request.getContextPath()%>/uploadExcelServlet"  
  •             enctype="multipart/form-data" >  
  •               
  •                   
  •                       
  • アップロードするファイルを選択:
  •                       
  •                       
  •                           
  •                       
  •                   
  •                   
  •                       
  •                             
  •                       
  •                       
  •                             onclick="tosubmit()">  
  •                              
  •   
  •                       
  •                   
  •               
  •           
  •       
  •