提交 bedef726 编写于 作者: F fengyw

bug修复,对上传的图片进行类型限制

上级 5023b919
/**
* Copyright 2015-现在 广州市领课网络科技有限公司
*/
package com.roncoo.education.common.core.tools;
import cn.hutool.core.io.FileTypeUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
/**
* 判断文件类型
*
* @author fengyw
*/
@Slf4j
public final class FileUtils {
private static final String PIC_TYPE_MAP = "jpg|png|gif|bmp|webp";
private FileUtils() {
}
public static boolean isPic(MultipartFile file) {
try {
String fileType = FileTypeUtil.getType(file.getInputStream());
return StrUtil.isNotBlank(fileType) && PIC_TYPE_MAP.contains(fileType);
} catch (IOException e) {
log.error("判断文件类型错误", e);
return false;
}
}
}
......@@ -2,7 +2,7 @@ package com.roncoo.education.system.service.admin;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.service.BaseController;
import com.roncoo.education.system.service.admin.biz.AdminUploadBiz;
import com.roncoo.education.system.service.biz.UploadCommonBiz;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
......@@ -26,7 +26,7 @@ import java.io.File;
public class AdminUploadController extends BaseController {
@Autowired
private AdminUploadBiz biz;
private UploadCommonBiz biz;
@ApiOperation(value = "上传图片", notes = "服务端上传图片接口,只支持图片格式")
@ApiImplicitParam(name = "picFile", value = "图片文件", dataType = "File", dataTypeClass = File.class, paramType = "query", required = true)
......
......@@ -2,7 +2,7 @@ package com.roncoo.education.system.service.auth;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.service.BaseController;
import com.roncoo.education.system.service.admin.biz.AdminUploadBiz;
import com.roncoo.education.system.service.biz.UploadCommonBiz;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
......@@ -26,7 +26,7 @@ import java.io.File;
public class AuthUploadController extends BaseController {
@Autowired
private AdminUploadBiz biz;
private UploadCommonBiz biz;
@ApiOperation(value = "上传图片", notes = "服务端上传图片接口,只支持图片格式")
@ApiImplicitParam(name = "picFile", value = "图片文件", dataType = "File", dataTypeClass = File.class, paramType = "query", required = true)
......
/**
* Copyright 2015-现在 广州市领课网络科技有限公司
*/
package com.roncoo.education.system.service.admin.biz;
package com.roncoo.education.system.service.biz;
import cn.hutool.core.util.ObjectUtil;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.enums.StoragePlatformEnum;
import com.roncoo.education.common.core.tools.FileUtils;
import com.roncoo.education.common.upload.Upload;
import com.roncoo.education.common.upload.UploadFace;
import com.roncoo.education.system.service.biz.SysConfigCommonBiz;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -24,7 +24,7 @@ import java.util.Map;
*/
@Slf4j
@Component
public class AdminUploadBiz {
public class UploadCommonBiz {
@Autowired
private Map<String, UploadFace> uploadFaceMap;
......@@ -33,13 +33,17 @@ public class AdminUploadBiz {
private SysConfigCommonBiz sysConfigCommonBiz;
public Result<String> uploadPic(MultipartFile picFile) {
if (!FileUtils.isPic(picFile)) {
return Result.error("请选择图片上传");
}
Upload upload = sysConfigCommonBiz.getSysConfig(Upload.class);
if (ObjectUtil.isNotEmpty(upload) || StringUtils.isEmpty(upload.getStoragePlatform())) {
UploadFace uploadFace = uploadFaceMap.get(StoragePlatformEnum.byCode(Integer.valueOf(upload.getStoragePlatform())).getMode());
String fileUrl = uploadFace.uploadPic(picFile, upload);
return Result.success(fileUrl);
}
return Result.error("上传参数配置");
return Result.error("上传参数配置");
}
public Result<String> uploadDoc(MultipartFile docFile) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册