From 2bc2f7c95c837864bdd249aa4f00dcc7ed123f0b Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期二, 15 二月 2022 10:51:44 +0800 Subject: [PATCH] 图片压缩功能提交 --- springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java | 38 +++++++++++++++++- springcloud_k8s_panzhihuazhihuishequ/common/pom.xml | 5 ++ springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java | 21 ++++++++++ springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java | 10 ++++- 4 files changed, 69 insertions(+), 5 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java index 560eb63..9bf59d3 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java +++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java @@ -15,6 +15,7 @@ import com.panzhihua.applets.config.MinioUtil; import com.panzhihua.common.controller.BaseController; +import net.coobird.thumbnailator.Thumbnails; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.RandomUtils; import org.springframework.beans.factory.annotation.Value; @@ -76,6 +77,8 @@ private int port; @Value("${ftp.url}") private String url; + @Value("${minio.url}") + private String minUrl; @Resource private WxMaConfiguration wxMaConfiguration; @Resource @@ -160,6 +163,24 @@ } } + @ApiOperation(value = "新上传照片压缩接口") + @PostMapping(value = "/uploadimagescompress", consumes = "multipart/*", headers = "content-type=multipart/form-date") + public R uploadImagesComPress(@RequestParam MultipartFile file, HttpServletRequest request) { + try { + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + String uuid=UUID.randomUUID().toString().replaceAll("-", ""); + String name = uuid + "."+ extension; + minioUtil.upload(file, name); + Thumbnails.of(file.getInputStream()).scale(1).outputQuality(0.01).outputFormat("jpg").toFile(uuid+"compress"); + File file1=new File(uuid+"compress.jpg"); + String imageUrl = minioUtil.uploadFile(file1, uuid+"compress.jpg"); + return R.ok(imageUrl); + } catch (Exception e) { + log.error("上传照片失败【{}】", e.getMessage()); + return R.fail(); + } + } + @ApiOperation(value = "发送验证码") @PostMapping(value = "smscode") public R smscode(@RequestBody UserPhoneVO userPhoneVO) { diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java index 2753796..e0e70cc 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java +++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java @@ -9,9 +9,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.net.URLEncoder; import java.util.UUID; @@ -72,6 +70,40 @@ } return null; } + /** + * 文件上传 + * + * @param file + * 要上传的文件 + * @return + */ + public String uploadFile(File file, String name) { + if (null != file) { + try { + UUID uuid = UUID.randomUUID(); + StringBuilder s = new StringBuilder(); + s.append(uuid.toString().replace("-", "")).append("/"); + MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), + minioProperties.getSecretKey()); + // bucket 不存在,创建 + if (!minioClient.bucketExists(minioProperties.getBucket())) { + minioClient.makeBucket(minioProperties.getBucket()); + } + // 得到文件流 + InputStream input = new FileInputStream(file); + // 文件名 + // String fileName = uuid + "/images." + FilenameUtils.getExtension(file.getOriginalFilename()); + String fileName = s.append(name).toString(); + minioClient.putObject(minioProperties.getBucket(), fileName, input, ""); + StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl()); + String url = fileUrl.append(fileName).toString(); + return url; + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } /** * 文件下载 diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/common/pom.xml index 3812298..8eade13 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/pom.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/common/pom.xml @@ -36,6 +36,11 @@ <artifactId>tomcat-embed-core</artifactId> </dependency> <dependency> + <groupId>net.coobird</groupId> + <artifactId>thumbnailator</artifactId> + <version>0.4.8</version> + </dependency> + <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java index 0f9c8fb..92853d5 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java @@ -42,7 +42,7 @@ if (answerContentVOList != null && answerContentVOList.size() > 0) { for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) { //判断是文字描述直接跳过 - if (userAnswers.getOptionType().equals(5) || userAnswers.getOptionType().equals(11) + if (userAnswers.getOptionType().equals(5) || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) { continue; } @@ -89,7 +89,13 @@ if(userAnswers.getOptionType().equals(11)){ reserveSubId = userAnswers.getReserveSubId(); try { - userData.add(new URL(userAnswers.getAnswerContent())); + if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){ + userData.add(new URL(userAnswers.getAnswerContent())); + //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6))); + } + else { + userData.add(" "); + } }catch (Exception e){ userData.add(" "); log.error("导出转换图片失败!"); -- Gitblit v1.7.1