package com.stylefeng.guns.modular.system.controller.util; import com.stylefeng.guns.config.properties.GunsProperties; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.common.exception.BizExceptionEnum; import com.stylefeng.guns.core.exception.GunsException; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.service.ITImgMidService; import com.stylefeng.guns.modular.system.util.ResultUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.UUID; /** * 上传文件 */ @RestController @RequestMapping("/upload") public class UploadUtil extends BaseController { private final static Logger log = LoggerFactory.getLogger(UploadUtil.class); @Autowired private GunsProperties gunsProperties; /** * 上传图片(上传到项目的webapp/static/img) */ @RequestMapping("/image") public String image(@RequestPart("file") MultipartFile picture) { try { return saveLocalFile(picture); } catch (Exception e) { log.error(e.getMessage(), e); throw new GunsException(BizExceptionEnum.UPLOAD_ERROR); } } /** * 多图片上传使用 * @param request * @return */ @RequestMapping( "/uploadPhoto") @ResponseBody public Map saveimg(HttpServletRequest request) { Map m = new HashMap<>(); try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = (MultipartFile) multipartRequest.getFile("myfile"); String localPath = saveLocalFile(file); m.put("imgUrl", localPath); } catch (Exception e) { log.error(e.getMessage(), e); } return m; } @Resource private ITImgMidService itImgMidService; // @RequestMapping("/image") // @ResponseBody // public ResultUtil image1(@RequestPart("file") MultipartFile file, HttpServletRequest request) { // try { // String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename()); // //// String pictureName = OssUploadUtil.ossUpload(request, file); // System.out.println("mediaResp"); //// MediaResp mediaResp = MediaExample.uploadImage(picture); //// System.out.println("------"+mediaResp); //// String pictureName = ObsUploadUtil.obsUpload(super.getHttpServletRequest(), picture); // return ResultUtil.success(pictureName); // } catch (Exception e1) { // e1.printStackTrace(); // return null; // } // } /** * 上传文件 */ @RequestMapping("/file") public String file(@RequestPart("file") MultipartFile picture) { //获取文件名后缀 String suffix = picture.getOriginalFilename().substring(picture.getOriginalFilename().lastIndexOf(".")); String pictureName = UUID.randomUUID().toString() + suffix; try { } catch (Exception e) { log.error(e.getMessage(), e); throw new GunsException(BizExceptionEnum.UPLOAD_ERROR); } return pictureName; } /** * UEditor编辑器上传图片 */ @RequestMapping("/imageUp") public String imageUp(@RequestPart("upfile") MultipartFile picture, HttpServletRequest request) { String callback = request.getParameter("callback"); try { String pictureName = saveLocalFile(picture); String result = "{'original': '" + picture.getOriginalFilename() + "', 'state': 'SUCCESS', 'url': '" + pictureName + "'}"; if (callback == null) { return result; } else { return ""; } } catch (Exception e) { log.error(e.getMessage(), e); String result = "{'original': '', 'state': '文件上传失败','url': ''}"; if (callback == null) { return result; } else { return ""; } } } private String saveLocalFile(MultipartFile picture) throws Exception { if (picture == null || picture.isEmpty()) { throw new GunsException(BizExceptionEnum.UPLOAD_ERROR); } String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename()); String fileSavePath = gunsProperties.getFileUploadPath(); File dir = new File(fileSavePath); if (!dir.exists() && !dir.mkdirs()) { throw new GunsException(BizExceptionEnum.UPLOAD_ERROR); } picture.transferTo(new File(dir, pictureName)); return gunsProperties.getPictureServerAddress() + pictureName; } }