zqy
6 天以前 6d7daf7b789b65a5f2837208b6b0cb8fa52a3367
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -24,6 +24,7 @@
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.utils.RenamedMultipartFile;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.domain.MediaCompressRequest;
import com.ruoyi.service.DownLoadFileService;
import com.ruoyi.service.impl.VideoProcessService;
import lombok.Data;
@@ -515,47 +516,40 @@
    /**
     * 压缩图片或提取视频封面并返回Base64
     *
     * @param file 图片或视频文件
     * @param width 目标宽度,默认100
     * @param height 目标高度,默认100
     * @param quality 图片质量 0.1-1.0,默认0.8
     * @param mediaCompressRequest
     * 包括
     *  file 图片或视频文件
     * width 目标宽度,默认100
     * height 目标高度,默认100
     *  quality 图片质量 0.1-1.0,默认0.8
     * @return Map包含压缩结果和Base64
     */
    @Anonymous
    @PostMapping(value = "/images/zip", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Map<String, Object> compressMediaToBase64(
        @RequestParam(value = "file", required = false) MultipartFile file,
        @RequestParam(value = "filePath", required = false) String filePath,
        @RequestParam(value = "width", defaultValue = "0") int width,
        @RequestParam(value = "height", defaultValue = "0") int height,
        @RequestParam(value = "quality", defaultValue = "0.8") float quality) {
    @PostMapping(value = "/images/zip")
    public Map<String, Object> compressMediaToBase64(@RequestBody MediaCompressRequest mediaCompressRequest) {
        Map<String, Object> result = new HashMap<>();
        File trueFile;
        boolean deleteY = true;
        try {
            // 验证文件
            if ((file == null || file.isEmpty()) && filePath == null ) {
        if (mediaCompressRequest == null && mediaCompressRequest.getFilePath() == null){
                result.put("success", false);
                result.put("message", "文件不能为空");
                return result;
            }
            if ((file == null || file.isEmpty())){
                deleteY = false;
                String fileUel = RuoYiConfig.getProfile() + filePath.replace("/profile","");
        String filePath = mediaCompressRequest.getFilePath();
        int width = mediaCompressRequest.getWidth();
        int height = mediaCompressRequest.getHeight();
        float quality = mediaCompressRequest.getQuality();
        System.out.println("--------------"+mediaCompressRequest);
        File trueFile;
        try {
            String fileUel = RuoYiConfig.getProfile() + filePath.replace("/profile","").replace("profile","");
                trueFile = new File(fileUel);
            }else {
                trueFile = videoProcessService.convertToFile(file);
            }
            String fileName = trueFile.getName();
            if (fileName.isEmpty() && filePath == null) {
                result.put("success", false);
                result.put("message", "文件名不能为空");
                return result;
            }
            System.out.println("-----------"+fileName);
@@ -566,10 +560,10 @@
            // 判断文件类型
            if (isImageFile(extension)) {
                // 处理图片文件
                return videoProcessService.processImage(trueFile, width, height, quality, extension,deleteY);
                return videoProcessService.processImage(trueFile, width, height, quality, extension);
            } else if (isVideoFile(extension)) {
                // 处理视频文件
                return videoProcessService.processVideo(trueFile,width,height,quality,extension,deleteY);
                return videoProcessService.processVideo(trueFile,width,height,quality,extension);
            } else {
                result.put("success", false);
                result.put("message", "不支持的文件格式:" + extension);