package com.kidgrow.filecenter.controller; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.Result; import com.kidgrow.common.model.ResultBody; import com.kidgrow.filecenter.model.FileInfo; import com.kidgrow.filecenter.service.IFileService; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @Description: 文件上传
* @Project:
* @CreateDate: Created in 2020/2/18 11:41
* @Author: liuke */ @RestController public class FileController { @Resource private IFileService fileService; /** * 文件上传 * 根据fileType选择上传方式 * * @param file * @return * @throws Exception */ @PostMapping(value="/files-anon",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo upload(@RequestParam("file") MultipartFile file) throws Exception { return fileService.upload(file); } /** * 文件上传 * 根据fileType选择上传方式 * * @param file * @return * @throws Exception */ @PostMapping(value="/files-upload",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo feignUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) throws Exception { return fileService.upload(file,imgType); } /** * 文件上传 返回带缩略图地址的对象,缩略图在path字段 * * @param file * @return * @throws Exception */ @PostMapping(value="/files-thupload",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo thUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) throws Exception { return fileService.uploadForThumbnails(file,imgType); } /** * 文件上传 根据fileType选择上传方式 hospitalId departmentId * @param file * @return */ @PostMapping(value="/feignUploadHosIdAndDepId",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo feignUploadHosIdAndDepId(@RequestPart("file") MultipartFile file,@RequestParam("imgType") String imgType,@RequestParam("hospitalId") String hospitalId,@RequestParam("departmentId") String departmentId) throws Exception { return fileService.feignUploadHosIdAndDepId(file,imgType,hospitalId,departmentId); } /** * base64上传图片 */ @PostMapping(value="baseUplaod",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo baseUplaod(@RequestParam("file") String file,@RequestParam("imgType") String imgType, @RequestParam("hospitalId") String hospitalId,@RequestParam("departmentId") String departmentId){ return fileService.baseUplaod(file,imgType,hospitalId,departmentId); } /** * base64图片下载 */ @PostMapping(value="baseDownLoad") public ResultBody baseDownLoad(@RequestBody Map map) throws Exception{ String url = MapUtils.getString(map, "url"); if (StringUtils.isBlank(url)) { return ResultBody.failed("请输入地址"); } return fileService.baseDownLoad(map); } /** * byte[]上传 */ @PostMapping(value="byteUplaod") public FileInfo byteUplaod(@RequestParam("fileName") String fileName,@RequestBody byte[] bytes) throws IOException{ if(bytes.length == 0){ return null; } if (com.kidgrow.common.utils.StringUtils.isBlank(fileName)) { return null; } InputStream inputStream = new ByteArrayInputStream(bytes); return fileService.byteUplaod(fileName,inputStream,bytes.length); } /** * byte[]上传 */ @PostMapping(value="byteUplaodTest",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo byteUplaodTest(@RequestParam("fileName") String fileName,@RequestPart("file") MultipartFile file)throws IOException { InputStream inputStream = file.getInputStream(); ByteArrayOutputStream bytestream = new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; int ch; /** * * */ while ((ch = inputStream.read(buffer)) != -1) { bytestream.write(buffer,0,ch); } byte[] data = bytestream.toByteArray(); InputStream inputStream1 = new ByteArrayInputStream(data); return fileService.byteUplaod(fileName,inputStream,data.length); } /** * 文件删除 * * @param id */ @DeleteMapping("/files/{id}") public Result delete(@PathVariable String id) { try { fileService.delete(id); return Result.succeed("操作成功"); } catch (Exception ex) { return Result.failed("操作失败"); } } /** * 文件查询 * * @param params * @return */ @GetMapping("/files") public PageResult findFiles(@RequestParam Map params) { return fileService.findList(params); } }