Spring CommonsMultipartResolver文件上傳的使用

Java代碼  
    
...Controller...{  
      
//創建一個通用的多部分解析器.  
   CommonsMultipartResolver commonsMultipartResolver = new   
CommonsMultipartResolver(request.getSession().getServletContext());  
//設置編碼  
   commonsMultipartResolver.setDefaultEncoding(”utf-8″);  
 //判斷 request 是否有文件上傳,即多部分請求...  
 if (commonsMultipartResolver.isMultipart(request))  
   {  
      //轉換成多部分request  
      MultipartHttpServletRequest multipartRequest =         
    commonsMultipartResolver.resolveMultipart(request);  
   
   // file 是指 文件上傳標籤的 name=值  
    // 根據 name 獲取上傳的文件...  
    MultipartFile file = multipartRequest.getFile("file");  
    
    //上傳後記錄的文件...     
    File imageFile = new File("fileName");  
    //上傳...  
    file.transferTo(imageFile);  
   
    }  
  }

jsp代碼

<form name="form1"   method="POST" enctype="multipart/form-data"  
           action="/msgupload" target="upload_if">  
    <button class="btn btn-primary able" name = "btnporject" id="queryfa" 
           type="button" style="float: inherit;"/>
	請選擇要上傳的文件: <input type="file" name="file">
	<input type="submit" id="sub" class="btn btn-primary" value="上傳">
	<iframe name='upload_if' id="hidden_frame" style='display:none'></iframe>
</form>

java代碼

@RequestMapping(value = "/msgupload", method = RequestMethod.POST)
	public String handleFileUpload(Model model, @RequestParam("file") MultipartFile file, HttpServletRequest request,
			HttpServletResponse response) {
		try{
		if (!file.isEmpty()) { // 創建一個通用的多部分解析器.
			CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
			// 判斷 request 是否有文件上傳,即多部分請求...
			if (multipartResolver.isMultipart(request)) {
				// 判斷 request 是否有文件上傳,即多部分請求...
				MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) (request);

				Iterator<String> iter = multiRequest.getFileNames();
				while (iter.hasNext()) {
					MultipartFile file1 = multiRequest.getFile(iter.next());
					String fileName = file1.getOriginalFilename();
					String ftp_id = System.currentTimeMillis();
					Properties propsFile = new Properties();
					InputStream in = null;
					String path1 = Thread.currentThread().getContextClassLoader().getResource("").getPath();
					in = new BufferedInputStream(new FileInputStream(path1 + "ftpcontrol.properties"));
					propsFile.load(in);
					String path = propsFile.getProperty("upload_path") + ftp_id + ".zip";
					File localFile = new File(path);
					if (!(fileName.contains("zip"))) {
						......
					} else {
						// 上傳文件
						file1.transferTo(localFile);
						int count = msgSendService.unZip(localFile);
						if(count == 0) {
							......
						}
						......
					}
				}
			}
		} else {
			......
		}
		}catch(Exception e) {
			......
		}
		......
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章