HttpClient上传文件到SpringMvc的controller中

本处使用的是Httpclient4.0.1

客户端:

public static int postXml(String path,String url){
	DefaultHttpClient  client = new DefaultHttpClient();
	HttpPost post = new HttpPost(url);
	MultipartEntity multipartEntity = new MultipartEntity();  
	FileBody cbFileBody = new FileBody(new File(path));  
	multipartEntity.addPart("file", cbFileBody);  
	post.setEntity(multipartEntity);
	int  statusCode = -1;
	try {
		HttpResponse response = client.execute(post);
		statusCode = response.getStatusLine().getStatusCode();
	} catch (Throwable e) {
		//记录异常日志
		SolrErrorCategory.error("xml文件post到solr服务器:"+url+" 创建索引出现异常错误!异常信息:"+e.getMessage(),e);
	}
	   return statusCode;
	}

 服务端:

@RequestMapping(value="upload",method=RequestMethod.POST)
	public void upload(HttpServletRequest request,
			HttpServletResponse response){
		try{
			long start = System.currentTimeMillis();  
			CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());  
	        //判断 request 是否有文件上传,即多部分请求  
	        if(multipartResolver.isMultipart(request)){  
	            //转换成多部分request    
	            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;  
	            //取得request中的所有文件名  
	            Iterator<String> iter = multiRequest.getFileNames();  
	            while(iter.hasNext()){  
	                //取得上传文件  
	                MultipartFile file = multiRequest.getFile(iter.next());  
	                if(file != null){  
	                	File localFile = new File("D:\\"+file.getOriginalFilename());
	                	file.transferTo(localFile);
	                }  
	                //记录上传该文件后的时间  
	                String spent = PerformanceUtil.spentTime(start);  
	            }  
	        }
		}catch(Throwable e){
        	log.error("接收solrcloud的XML文件失败,失败原因:",e);
        }
	}

猜你喜欢

转载自15901458930.iteye.com/blog/2276501