springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
@@ -11,8 +11,8 @@ import com.panzhihua.applets.config.MinioUtil; import com.panzhihua.applets.umf.UmfPayUtil; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.MimeTypeUtils; import com.panzhihua.common.model.vos.community.Base64File; import com.panzhihua.common.utlis.*; import net.coobird.thumbnailator.Thumbnails; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.RandomUtils; @@ -31,8 +31,6 @@ import com.panzhihua.common.model.vos.community.WeatherVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.HttpUtils; import com.panzhihua.common.utlis.SFTPUtil; import cn.binarywang.wx.miniapp.api.WxMaSecCheckService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -164,6 +162,23 @@ } } @ApiOperation(value = "文件流上传接口") @PostMapping(value = "/uploadImagesInputStream") public R uploadImagesInputStream(@RequestBody Base64File file, HttpServletRequest request) { if(StringUtils.isEmpty(file.getFile())){ return R.fail("文件不能为Null"); } try { String name = UUID.randomUUID().toString().replaceAll("-", "") + ".jpg"; InputStream is = minioUtil.base64StrToInputStream(file.getFile().replace("data:image/png;base64,","").replace("data:image/jpg;base64,","").replace("data:image/jpeg;base64,","")); String imageUrl = minioUtil.uploadInputStream(is, name); return R.ok(imageUrl); } catch (Exception e) { log.error("上传照片失败【{}】", e.getMessage()); return R.fail(); } } @ApiOperation(value = "新上传照片压缩接口") @PostMapping(value = "/uploadimagescompress", consumes = "multipart/*", headers = "content-type=multipart/form-date") public R uploadImagesComPress(@RequestParam MultipartFile file, HttpServletRequest request) { springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java
@@ -4,6 +4,7 @@ import io.minio.MinioClient; import io.minio.ObjectStat; import org.apache.commons.io.IOUtils; import org.bouncycastle.util.encoders.Base64; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -61,6 +62,36 @@ String fileName = s.append(name).toString(); String contentType = file.getContentType(); minioClient.putObject(minioProperties.getBucket(), fileName, input, contentType); StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl()); String url = fileUrl.append(fileName).toString(); return url; } catch (Exception e) { e.printStackTrace(); } } return null; } /** * 文件上传 * * @param input * 要上传的文件 * @return */ public String uploadInputStream(InputStream input, String name) { if (null != input) { 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()); if (!minioClient.bucketExists(minioProperties.getBucket())) { minioClient.makeBucket(minioProperties.getBucket()); } String fileName = s.append(name).toString(); minioClient.putObject(minioProperties.getBucket(), fileName, input, "application/octet-stream"); StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl()); String url = fileUrl.append(fileName).toString(); return url; @@ -210,4 +241,15 @@ } } public InputStream base64StrToInputStream(String base64string) { ByteArrayInputStream stream = null; try { byte[] bytes = Base64.decode(base64string); stream = new ByteArrayInputStream(bytes); } catch (Exception e) { e.printStackTrace(); } return stream; } }