Android 는 서버 에 사진 을, android - async - http 는 서버 에 사진 을 업로드

2920 단어 Android
배경: 최근 에 안 드 로 이 드 가 서버 에 사진 을 올 리 는 것 을 만 났 습 니 다. 오늘 연 구 를 해 봤 는데 아주 간단 합 니 다. 저 는 안 드 로 이 드 - async - Huttp 를 사 용 했 고 버 전 은 1.4.4 입 니 다.
도구 다운로드 주소:https://github.com/loopj/android-async-http/tree/1.4.6/releases
홈 페이지 에 도 소개 가 있다.http://loopj.com/android-async-http/
Android 원본 세 션:
private void uploadImage()
	{
		//      
		String url="http://172.16.3.129:8082/jd-web/FileUpload.do?cmd=uploadFiles";
		try {
			String imageUrl="/storage/sdcard0/upload/yellow.jpg";
			RequestParams params=new RequestParams();
			//params.add("cmd","uploadFiles");//   
			//params.add("albumId","93345");//  ID
			//     ,           ,         ,  put             ,      ,
			//              ,          key   ,      ,       ,
			//     "application/octet-stream",     ,             。
			//params.put("image", new File(imageUrl),"application/octet-stream");
			params.put("profile_picture", new File(imageUrl));
			HttpUtil.post(url,params, uploadResponseHander());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			tvShowLog.setText("      ");
		}
	}

	/**
	 *     
	 * @return
	 */
	private AsyncHttpResponseHandler uploadResponseHander()
	{
		return new AsyncHttpResponseHandler()
		{
			@Override
			public void onSuccess(int statusCode, Header[] headers, byte[] responseBody)
			{
				String content=new String(responseBody);
				tvShowLog.setText("    :"+content);
			}
			@Override
			public void onFailure(int statusCode, Header[] headers,
					byte[] responseBody, Throwable error)
			{
				tvShowLog.setText("    ");
			}
		};
	}

서버 엔 드 소스 세 션:
	@RequestMapping(params="cmd=uploadFiles")
	@ResponseBody
	public JsonResult uploadFiles(@RequestParam Integer albumId,HttpServletRequest  request, HttpServletResponse response){
		JsonResult jsonResult = new JsonResult(true);
		try {
			//  request MultipartHttpServletRequest  
			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
			//       
			Map fileMap = multipartRequest.getFileMap();
			//         
			for (Map.Entry entity : fileMap.entrySet()) {
				//         
				MultipartFile mf = entity.getValue();  
				//      ,       ,                    
				byte[] bytes = mf.getBytes();
				//          
				String fileName = mf.getOriginalFilename();  
			}
		} catch (Exception e) 
		{
		}
		return jsonResult;
	}

Spring 의 Util 패키지 에서 FileCopyUtils 도구 류 를 사용 하여 이 바이트 배열 을 원가 의 그림 파일 로 저장 할 수 있 습 니 다.
FileCopyUtils.copy(mf.getBytes(), “D:\ImageUpload\xxx.jpg);

OK, 여기까지.

좋은 웹페이지 즐겨찾기