diff --git a/im-platform/src/main/java/com/bx/implatform/controller/FileController.java b/im-platform/src/main/java/com/bx/implatform/controller/FileController.java index 39d4990..e9c0856 100644 --- a/im-platform/src/main/java/com/bx/implatform/controller/FileController.java +++ b/im-platform/src/main/java/com/bx/implatform/controller/FileController.java @@ -25,8 +25,8 @@ public class FileController { @Operation(summary = "上传图片", description = "上传图片,上传后返回原图和缩略图的url") @PostMapping("/image/upload") public Result uploadImage(@RequestParam("file") MultipartFile file, - @RequestParam(defaultValue = "true") Boolean isPermanent) { - return ResultUtils.success(fileService.uploadImage(file,isPermanent)); + @RequestParam(defaultValue = "true") Boolean isPermanent, @RequestParam(defaultValue = "50") Long thumbSize) { + return ResultUtils.success(fileService.uploadImage(file, isPermanent,thumbSize)); } @Operation(summary = "上传文件", description = "上传文件,上传后返回文件url") diff --git a/im-platform/src/main/java/com/bx/implatform/service/FileService.java b/im-platform/src/main/java/com/bx/implatform/service/FileService.java index bc32e19..2540b9e 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/FileService.java +++ b/im-platform/src/main/java/com/bx/implatform/service/FileService.java @@ -9,7 +9,7 @@ public interface FileService extends IService { String uploadFile(MultipartFile file); - UploadImageVO uploadImage(MultipartFile file,Boolean isPermanent); + UploadImageVO uploadImage(MultipartFile file,Boolean isPermanent,Long thumbSize); } diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/FileServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/FileServiceImpl.java index 150bc2c..761f2dc 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/impl/FileServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/impl/FileServiceImpl.java @@ -92,7 +92,7 @@ public class FileServiceImpl extends ServiceImpl imple @Transactional @Override - public UploadImageVO uploadImage(MultipartFile file, Boolean isPermanent) { + public UploadImageVO uploadImage(MultipartFile file, Boolean isPermanent,Long thumbSize) { try { Long userId = SessionContext.getSession().getUserId(); // 大小校验 @@ -129,9 +129,9 @@ public class FileServiceImpl extends ServiceImpl imple throw new GlobalException(ResultCode.PROGRAM_ERROR, "图片上传失败"); } vo.setOriginUrl(generUrl(FileType.IMAGE, fileName)); - if (file.getSize() > 50 * 1024) { + if (file.getSize() > thumbSize * 1024) { // 大于50K的文件需上传缩略图 - byte[] imageByte = ImageUtil.compressForScale(file.getBytes(), 30); + byte[] imageByte = ImageUtil.compressForScale(file.getBytes(), thumbSize); String thumbFileName = minioSerivce.upload(minioProps.getBucketName(), minioProps.getImagePath(), file.getOriginalFilename(), imageByte, file.getContentType()); if (StringUtils.isEmpty(thumbFileName)) { diff --git a/im-uniapp/components/image-upload/image-upload.vue b/im-uniapp/components/image-upload/image-upload.vue index 22ca4ef..74410da 100644 --- a/im-uniapp/components/image-upload/image-upload.vue +++ b/im-uniapp/components/image-upload/image-upload.vue @@ -33,6 +33,10 @@ export default { type: Boolean, default: false }, + thumbSize: { + type: Number, + default: 50 + }, onBefore: { type: Function, default: null @@ -63,8 +67,9 @@ export default { }) }, uploadImage(file) { + let action = `/image/upload?isPermanent=${this.isPermanent}&thumbSize=${this.thumbSize}` uni.uploadFile({ - url: UNI_APP.BASE_URL + '/image/upload?isPermanent=' + this.isPermanent, + url: UNI_APP.BASE_URL + action, header: { accessToken: uni.getStorageSync("loginInfo").accessToken }, diff --git a/im-uniapp/pages/group/group-edit.vue b/im-uniapp/pages/group/group-edit.vue index eaae034..fd7cdee 100644 --- a/im-uniapp/pages/group/group-edit.vue +++ b/im-uniapp/pages/group/group-edit.vue @@ -1,11 +1,11 @@ @@ -147,43 +150,43 @@ export default { .form { margin-top: 20rpx; - + .form-item { padding: 0 40rpx; display: flex; background: white; align-items: center; margin-bottom: 2rpx; - + .label { width: 220rpx; line-height: 100rpx; font-size: $im-font-size; white-space: nowrap; } - - .value{ + + .value { flex: 1; } - + .input { flex: 1; text-align: right; line-height: 100rpx; font-size: $im-font-size-small; } - + .disable { color: $im-text-color-lighter; } - + .notice { flex: 1; font-size: $im-font-size-small; max-height: 200rpx; padding: 14rpx 0; } - + .group-image { width: 120rpx; height: 120rpx; @@ -193,5 +196,4 @@ export default { } } } - - + \ No newline at end of file diff --git a/im-uniapp/pages/mine/mine-edit.vue b/im-uniapp/pages/mine/mine-edit.vue index 80ad592..f3e6bc2 100644 --- a/im-uniapp/pages/mine/mine-edit.vue +++ b/im-uniapp/pages/mine/mine-edit.vue @@ -4,7 +4,7 @@ 头像 - + diff --git a/im-web/src/components/common/FileUpload.vue b/im-web/src/components/common/FileUpload.vue index f38284a..875abf0 100644 --- a/im-web/src/components/common/FileUpload.vue +++ b/im-web/src/components/common/FileUpload.vue @@ -55,8 +55,11 @@ export default { } let formData = new FormData() formData.append('file', file.file) + let url = this.action; + url += this.action.includes("?") ? "&" : "?" + url += 'isPermanent=' + this.isPermanent; this.$http({ - url: this.action + '?isPermanent=' + this.isPermanent, + url: url, data: formData, method: 'post', headers: { diff --git a/im-web/src/components/setting/Setting.vue b/im-web/src/components/setting/Setting.vue index 3228613..ad06382 100644 --- a/im-web/src/components/setting/Setting.vue +++ b/im-web/src/components/setting/Setting.vue @@ -87,7 +87,7 @@ export default { }, computed: { imageAction() { - return `/image/upload`; + return `/image/upload?thumbSize=20`; } }, watch: { diff --git a/im-web/src/view/Group.vue b/im-web/src/view/Group.vue index 73df1ab..d995306 100644 --- a/im-web/src/view/Group.vue +++ b/im-web/src/view/Group.vue @@ -295,7 +295,7 @@ export default { return this.activeGroup.ownerId == this.userStore.userInfo.id; }, imageAction() { - return `/image/upload`; + return `/image/upload?thumbSize=20`; }, groupMap() { // 按首字母分组