| package com.mzl.flower.web.upload; | 
|   | 
| import com.aliyun.oss.OSS; | 
| import com.aliyun.oss.OSSClientBuilder; | 
| import com.mzl.flower.base.BaseController; | 
| import com.mzl.flower.base.R; | 
| import com.mzl.flower.config.OssProperties; | 
| import com.mzl.flower.config.UploadProperties; | 
| import com.mzl.flower.config.exception.ValidationException; | 
| import com.mzl.flower.dto.response.upload.UploadResultDTO; | 
| import com.mzl.flower.service.UploadService; | 
| import com.mzl.flower.utils.FileUtil; | 
| import com.mzl.flower.utils.UUIDGenerator; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.http.ResponseEntity; | 
| import org.springframework.web.bind.annotation.PostMapping; | 
| import org.springframework.web.bind.annotation.RequestMapping; | 
| 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 javax.servlet.http.HttpServletResponse; | 
| import java.io.InputStream; | 
| import java.util.ArrayList; | 
| import java.util.Arrays; | 
| import java.util.Iterator; | 
| import java.util.List; | 
|   | 
| @RestController | 
| @RequestMapping("/api/upload/oss") | 
| @Api(value = "文件上传-阿里云oss", tags = "文件上传-阿里云oss") | 
| public class FileUploadOssResource extends BaseController { | 
|   | 
|     @Autowired | 
|     private UploadService uploadService; | 
|   | 
|     private static List<String> fileType = Arrays.asList("zip", "jpg", "png", "gif", "jpeg", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "mp4", "wmv", "rmvb", "mpg", "mpeg", "3gp", "mov", "m4v", "avi", "flv"); | 
|   | 
|   | 
|     @PostMapping("/file") | 
|     @ResponseBody | 
|     @ApiOperation(value = "上传文件", httpMethod = "POST", notes = "上传文件") | 
|     public ResponseEntity<?> uploadFile(final String _fileName, HttpServletRequest request, HttpServletResponse response) throws Exception { | 
|         List<UploadResultDTO> result = new ArrayList<UploadResultDTO>(); | 
|   | 
|         MultipartHttpServletRequest mRequest =null; | 
|         if (request instanceof MultipartHttpServletRequest) { | 
|             mRequest = (MultipartHttpServletRequest)(request); | 
|         } | 
|         if (mRequest == null) { | 
|             throw new ValidationException("文件上传失败"); | 
|         } | 
|         Iterator<String> iter = mRequest.getFileNames(); | 
|         while (iter.hasNext()) { | 
|             MultipartFile file = mRequest.getFile(iter.next()); | 
|             String fileName = null; | 
|             if (StringUtils.isNotEmpty(_fileName)) { | 
|                 fileName = _fileName; | 
|             } else { | 
|                 fileName = file.getOriginalFilename(); | 
|             } | 
|             //获取文件类型 | 
|             String extName = null; | 
|             try { | 
|                 extName = fileName.substring(fileName.lastIndexOf(".")) | 
|                         .toLowerCase(); | 
|                 extName = extName.replace(".", ""); | 
|             } catch (Exception e) { | 
|                 extName = null; | 
|             } | 
|             if (!fileType.contains(extName.toLowerCase())) { | 
|                 throw new ValidationException("文件类型格式不正确"); | 
|             } | 
|   | 
|             UploadResultDTO uploadResult = new UploadResultDTO(); | 
|             uploadResult.setName(fileName); | 
|   | 
|             /*byte[] bytes = file.getBytes(); | 
|             String path = uploadProperties.getLocalServerPath(); | 
|             fileName = UUIDGenerator.getUUID() + FileUtil.getFileEndfix(fileName); | 
|             String url = FileUtil.saveFile(path, bytes, fileName, uploadProperties.getFileGroup()); | 
|             uploadResult.setUrl(uploadProperties.getFileServerPath() + url);*/ | 
|   | 
|             String url = uploadService.upload(file.getInputStream(), fileName); | 
|             uploadResult.setUrl("https://" + url); | 
|   | 
|             uploadResult.setType(extName); | 
|             uploadResult.setSize(file.getSize()); | 
|   | 
|             result.add(uploadResult); | 
|         } | 
|         if (result.isEmpty()) { | 
|             throw new ValidationException( "文件为空"); | 
|         } | 
|         return returnData(R.SUCCESS.getCode(), result); | 
|     } | 
| } |