1. 程式人生 > >app上傳圖片到後臺(Java)

app上傳圖片到後臺(Java)

最近需要給APP提供介面,其中有上傳照片的,於是寫了下面這個介面。

支援上傳多個檔案,包括但不限於圖片。程式碼較簡單,就不多作解釋。

提一個點:由於是檔案上傳,因此不能把資料格式設定為"application/json;charset=UTF-8",會導致介面調不通,注意! 

/**
	 * 上傳照片
	 * @return
	 */
	@RequestMapping(value="/uploadphoto",method=RequestMethod.POST)
	@ResponseBody
	public String uploadPhoto(HttpServletRequest request){
		AppResultJson resultJson = new AppResultJson();
		//建立一個通用的多部分解析器.
		CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
		//設定編碼
		commonsMultipartResolver.setDefaultEncoding("utf-8");
		//判斷 request 是否有檔案上傳,即多部分請求..
		if (commonsMultipartResolver.isMultipart(request)){
			try {
				MultipartHttpServletRequest mulReq = (MultipartHttpServletRequest) request;
				List<MultipartFile> files=mulReq.getFiles("files");
				List<String> map=relieveRiskService.uploadPhoto(files);
				resultJson.setObj(map);
				resultJson.setMsg("上傳成功");
				resultJson.setStatus(ResultStatusConstants.SUCCESS);
			} catch (Exception e) {
				resultJson.setMsg("上傳失敗,"+e.getMessage());
				resultJson.setStatus(ResultStatusConstants.SYS_ERROR);
				logger.error(e.getMessage());
			}
		}else{
			resultJson.setMsg("上傳照片不能為空。");
			resultJson.setStatus(ResultStatusConstants.PARAM_ERROR);
		}
		return JsonMapper.toJsonString(resultJson);
	}