app上傳圖片到後臺(Java)
阿新 • • 發佈:2019-01-27
最近需要給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); }