fix
Helius
2022-11-12 8c653240c5174e3182faf899b0ada989d4dcfe5f
src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminCommonController.java
@@ -1,7 +1,9 @@
package com.xcong.farmer.cms.modules.system.controller;
import cn.hutool.core.img.Img;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.xcong.farmer.cms.common.contants.AppContants;
import com.xcong.farmer.cms.common.response.Result;
import com.xcong.farmer.cms.modules.system.dto.AdminLoginDto;
@@ -9,13 +11,21 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.coobird.thumbnailator.Thumbnails;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.validation.Valid;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
@RestController
@@ -29,17 +39,14 @@
    @ApiOperation(value = "登陆接口", notes = "登陆接口")
    @PostMapping("/login")
    public Result login(@RequestBody AdminLoginDto adminLoginDto) {
        String username = adminLoginDto.getUsername();
        if(StrUtil.isEmpty(username)){
            return Result.fail("请输入用户名");
        }
        String password = adminLoginDto.getPassword();
        if(StrUtil.isEmpty(password)){
            return Result.fail("请输入密码");
        }
    public Result login(@RequestBody @Valid AdminLoginDto adminLoginDto) {
        return iCommonService.login(adminLoginDto);
    }
    @ApiOperation(value = "获取验证码", notes = "获取验证码")
    @GetMapping("/captcha")
    public Result captcha() throws IOException {
        return iCommonService.captchaCreator();
    }
    /**
@@ -47,7 +54,7 @@
     * @return
     */
    @ApiOperation(value="用户退出登录", notes="用户退出登录")
    @GetMapping(value = "/Logout")
    @PostMapping(value = "/Logout")
    public Result  memberLogout() {
        return iCommonService.memberLogout();
    }
@@ -113,12 +120,15 @@
    @Value("${static.resource.url}")
    private String resourceUrl;
    @Value("${static.resource.path}")
    private String resourcePath;
    @ApiOperation(value = "文件上传", notes = "文件上传")
    @PostMapping("/uploadFile")
    public Result uploadFile(@RequestParam("file") MultipartFile file) throws Exception {
        // 文件保存目录路径
        String savePath = AppContants.PICTURE_PATH;
        String savePath = resourcePath;
        // 文件保存目录URL
        String saveUrl = resourceUrl;
        // 检查目录
@@ -126,19 +136,38 @@
        if (!uploadDir.isDirectory()) {
            uploadDir.mkdir();
        }
        //获得文件的后缀
        // 获得文件的后缀
        String filename = IdUtil.simpleUUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        File filepath = new File(savePath + filename);
        try {
            //存文件
            file.transferTo(filepath);
        } catch (IOException e) {
            e.printStackTrace();
        if (isImage(file.getInputStream())) {
            Thumbnails.of(file.getInputStream())
                    // 图片大小(长宽)压缩比例 从0-1,1表示原图
                    .scale(1f)
                    // 图片质量压缩比例 从0-1,越接近1质量越好
                    .outputQuality(0.5f)
                    .toOutputStream(new FileOutputStream(savePath + filename));
        } else {
            File filepath = new File(savePath + filename);
            try {
                //存文件
                file.transferTo(filepath);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        String visitPath = (saveUrl + filename);
        return Result.ok("上传成功",visitPath);
    }
    private boolean isImage(InputStream inputStream) {
        BufferedImage read = null;
        try {
            read = ImageIO.read(inputStream);
        } catch (IOException e) {
            return false;
        }
        return read != null;
    }
}