package cn.wisenergy.chnmuseum.party.web.controller; import cn.wisenergy.chnmuseum.party.common.dfs.FastDFSUtils; import cn.wisenergy.chnmuseum.party.common.vo.PicUploadResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; /** * 图片上传 */ @RestController @RequestMapping("/pic") public class PicUploadController { private static final Logger log = LoggerFactory.getLogger(PicUploadController.class); // 允许上传的格式 private static final String[] IMAGE_TYPE = new String[]{".bmp", ".jpg", ".jpeg", ".png"}; // @RequestMapping(value = "/upload", method = RequestMethod.POST) // public ResponseEntity<PicUploadResult> upload(@RequestParam(value = "bc_cover", required = true) MultipartFile uploadFile, HttpServletResponse response) throws Exception { // // 校验文件扩展名 // boolean isLegal = false; // for (String type : IMAGE_TYPE) { // if (StringUtils.endsWithIgnoreCase(uploadFile.getOriginalFilename(), type)) { // isLegal = true; // break; // } // } // byte[] bytes = uploadFile.getBytes(); // if (ImageUtil.isPicture(uploadFile.getOriginalFilename()) && ImageUtil.isImage(bytes) && ImageUtil.isImage1(bytes)) { // isLegal = true; // } else { // isLegal = false; // throw new RuntimeException("图片文件不合法"); // } // // // 封装Result对象,并且将文件的byte数组放置到result对象中 // PicUploadResult fileUploadResult = new PicUploadResult(); // // 状态 // fileUploadResult.setError(isLegal ? 0 : 1); // // 文件新路径 // String filePath = FastDFSUtils.uploadPic(bytes, uploadFile.getOriginalFilename(), uploadFile.getSize()); // // if (log.isDebugEnabled()) { // log.debug("Pic file upload .[{}] to [{}] .", uploadFile.getOriginalFilename(), filePath); // } // String picUrl = IMAGE_BASE_URL + filePath; // fileUploadResult.setUrl(picUrl); // isLegal = false; // try { // BufferedImage image = ImageIO.read(new URL(picUrl)); // if (image != null) { // // fileUploadResult.setWidth(image.getWidth() + ""); // // fileUploadResult.setHeight(image.getHeight() + ""); // isLegal = true; // } // } catch (IOException e) { // log.error("check image is legal error! " + e.getMessage()); // } // isLegal = true; // fileUploadResult.setError(isLegal ? 0 : 1); // if (!isLegal) { // // 不合法,将磁盘上的文件删除 // FastDFSUtils.deletePic(picUrl); // } // return ResponseEntity.status(HttpStatus.CREATED).body(fileUploadResult); // } @RequestMapping(value = "/upload", method = RequestMethod.POST) public ResponseEntity<PicUploadResult> uploadFile(@RequestParam(value = "cover") MultipartFile uploadFile) throws Exception { PicUploadResult fileUploadResult = new PicUploadResult(); String filePath = FastDFSUtils.uploadFile(uploadFile.getInputStream(), uploadFile.getSize(), uploadFile.getOriginalFilename()); if (log.isDebugEnabled()) { log.debug("Pic file upload .[{}] to [{}] .", uploadFile.getOriginalFilename(), filePath); } fileUploadResult.setUrl(filePath); return ResponseEntity.status(HttpStatus.CREATED).body(fileUploadResult); } }