package com.dsh.guns.modular.system.controller.util; import com.dsh.guns.config.properties.GunsProperties; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.common.exception.BizExceptionEnum; import com.dsh.guns.core.exception.GunsException; import com.dsh.guns.modular.system.util.OBSUploadUtil; import com.dsh.guns.modular.system.util.OssUploadUtil; 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.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; 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) { String pictureName = UUID.randomUUID().toString() + ".jpg"; try { // 文件目录路径 String fileSavePath = gunsProperties.getFileUploadPath(); picture.transferTo(new File(fileSavePath + pictureName)); } catch (Exception e) { log.error(e.getMessage(), e); throw new GunsException(BizExceptionEnum.UPLOAD_ERROR); } return pictureName; }*/ /** * 多图片上传使用 * @param request * @return */ @RequestMapping( "/uploadPhoto") @ResponseBody public Map saveimg(HttpServletRequest request) { Map m = new HashMap<>(); try { String ossUpload = null; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = (MultipartFile) multipartRequest.getFile("myfile"); if (file.getSize() != 0) { ossUpload = OBSUploadUtil.inputStreamUpload(file); // ossUpload = ObsUploadUtil.obsUpload(super.getHttpServletRequest(), file); m.put("imgUrl", ossUpload); } } catch (Exception e) { e.printStackTrace(); } return m; } @RequestMapping("/image") @ResponseBody public String image(@RequestPart("file") MultipartFile picture, HttpServletRequest request) { try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = (MultipartFile) picture; String name = file.getOriginalFilename(); String s = name.substring(name.lastIndexOf(".") + 1).toLowerCase(); if(!s.equals("jpg") && !s.equals("png") && !s.equals("jpeg")){ return null; } long size = file.getSize(); if(size > 524288000L){//500M限制 return "请上传500M以内的文件"; } String pictureName = OBSUploadUtil.inputStreamUpload(file); // String pictureName = ObsUploadUtil.obsUpload(super.getHttpServletRequest(), picture); return pictureName; } catch (IOException e1) { return null; } } /** * 上传文件 */ @RequestMapping("/file") public String file(@RequestPart("file") MultipartFile picture,HttpServletRequest request) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = (MultipartFile) picture; String name = file.getName(); long size = picture.getSize(); if(size > 524288000L){//500M限制 return "请上传500M以内的文件"; } //获取文件名后缀 String suffix = picture.getOriginalFilename().substring(picture.getOriginalFilename().lastIndexOf(".")); String s = suffix.toUpperCase(); if( !(s.equals(".WAV") || s.equals(".FLAC") || s.equals(".MP3"))){ return "error"; } String pictureName =null; try { pictureName = OBSUploadUtil.inputStreamUpload(file); // 文件目录路径 // String fileSavePath = gunsProperties.getFileUploadPath(); // File file = new File(fileSavePath + picture.getOriginalFilename()); // String path = file.getPath(); // System.out.println(path); // picture.transferTo(file); pictureName = pictureName; } 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) { long size = picture.getSize(); if(size > 524288000L){//500M限制 return "请上传500M以内的文件"; } String callback = request.getParameter("callback"); String pictureName = UUID.randomUUID().toString() + ".jpg"; try { // 上传文件目录 //String fileSavePath = gunsProperties.getFileUploadPath(); //picture.transferTo(new File(fileSavePath + pictureName)); // 文件全路径 //pictureName = gunsProperties.getPictureServerAddress() + pictureName; // pictureName = ObsUploadUtil.obsUpload(super.getHttpServletRequest(), picture); String name = picture.getOriginalFilename(); String s = name.substring(name.lastIndexOf(".") + 1).toLowerCase(); if(!s.equals("jpg") && !s.equals("png") && !s.equals("jpeg")){ return null; } pictureName = OBSUploadUtil.inputStreamUpload(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 ""; } } } }