代码提交
This commit is contained in:
parent
d6e0432b1f
commit
eac2652615
|
|
@ -15,12 +15,13 @@ import com.bonus.web.domain.vo.DaKyProFilesContentsVo;
|
|||
import com.bonus.web.mapper.FileManageMapper;
|
||||
import com.bonus.web.service.FileManageService;
|
||||
import com.bonus.web.service.ProjectService;
|
||||
import com.bonus.web.util.FileUtils;
|
||||
import com.bonus.web.util.webFileUtils;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
|
@ -55,6 +56,12 @@ public class FileManagementController extends BaseController {
|
|||
@Autowired
|
||||
private FileManageMapper fileManageMapper;
|
||||
|
||||
@Autowired
|
||||
private webFileUtils webFileUtils;
|
||||
|
||||
@Value("${bonus.profile}")
|
||||
private String uploadDir;
|
||||
|
||||
@ApiOperation(value = "档案管理列表")
|
||||
@GetMapping("getProjectList")
|
||||
@SysLog(title = "档案管理列表", module = "档案管理->项目管理", businessType = OperaType.QUERY, details = "档案管理列表", logType = 1)
|
||||
|
|
@ -164,7 +171,7 @@ public class FileManagementController extends BaseController {
|
|||
return R.fail("文件命名不能包含" + s.getStandardName());
|
||||
}
|
||||
}
|
||||
FileDto upload = FileUtils.upload(file);
|
||||
FileDto upload = webFileUtils.upload(file);
|
||||
dto.setFilePath(upload.getFilePath());
|
||||
dto.setFileSize(upload.getFileSize());
|
||||
dto.setFileName(upload.getFileName());
|
||||
|
|
@ -230,7 +237,7 @@ public class FileManagementController extends BaseController {
|
|||
return R.fail("文件命名不能包含" + s.getStandardName());
|
||||
}
|
||||
}
|
||||
FileDto upload = FileUtils.upload(file);
|
||||
FileDto upload = webFileUtils.upload(file);
|
||||
dto.setFilePath(upload.getFilePath());
|
||||
dto.setFileSize(upload.getFileSize());
|
||||
dto.setFileName(upload.getFileName());
|
||||
|
|
@ -355,7 +362,7 @@ public class FileManagementController extends BaseController {
|
|||
return R.fail("文件未找到");
|
||||
}
|
||||
|
||||
String filePath = record.getFilePath();
|
||||
String filePath = uploadDir + record.getFilePath();
|
||||
String fileName = record.getFileName();
|
||||
|
||||
Path path = Paths.get(filePath);
|
||||
|
|
|
|||
|
|
@ -1,31 +1,16 @@
|
|||
package com.bonus.web.util;
|
||||
|
||||
import com.bonus.common.config.BonusConfig;
|
||||
import com.bonus.common.constant.Constants;
|
||||
import com.bonus.common.core.domain.entity.SysDictData;
|
||||
import com.bonus.common.utils.DateUtils;
|
||||
import com.bonus.common.utils.StringUtils;
|
||||
import com.bonus.common.utils.bean.FileDto;
|
||||
import com.bonus.common.utils.file.FileTypeUtils;
|
||||
import com.bonus.common.utils.file.FileUploadUtils;
|
||||
import com.bonus.common.utils.file.MimeTypeUtils;
|
||||
import com.bonus.common.utils.uuid.IdUtils;
|
||||
import com.bonus.system.mapper.SysDictDataMapper;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
|
@ -33,13 +18,14 @@ import java.util.*;
|
|||
*
|
||||
* @author bonus
|
||||
*/
|
||||
public class FileUtils {
|
||||
@Component
|
||||
public class webFileUtils {
|
||||
// 常见的图片扩展名(小写)
|
||||
private static final Set<String> IMAGE_EXTENSIONS;
|
||||
private static String UPLOAD_DIR;
|
||||
|
||||
@Resource
|
||||
private static SysDictDataMapper dictDataMapper;
|
||||
private SysDictDataMapper dictDataMapper;
|
||||
|
||||
private static final List<String> BLOCKED_PATTERNS = Arrays.asList(
|
||||
"<", ">", "[", "]", "(", ")", "/", "'", "\"", "@", "!", "+",
|
||||
|
|
@ -72,7 +58,7 @@ public class FileUtils {
|
|||
}
|
||||
|
||||
|
||||
public static final FileDto upload(MultipartFile file) throws IOException {
|
||||
public FileDto upload(MultipartFile file) throws IOException {
|
||||
FileDto bean = new FileDto();
|
||||
if (file != null && !file.isEmpty()) {
|
||||
// 验证文件类型
|
||||
|
|
@ -89,7 +75,7 @@ public class FileUtils {
|
|||
SysDictData fileSizeLimit = selectDictDataByType("file_size_limit");
|
||||
// 转换为 MB(保留 2 位小数)
|
||||
double sizeInMB = file.getSize() / (1024.0 * 1024.0);
|
||||
if (sizeInMB > Double.parseDouble(fileSizeLimit.getDictValue())){
|
||||
if (sizeInMB > Double.parseDouble(fileSizeLimit.getDictValue())) {
|
||||
throw new RuntimeException("文件大小超出限制");
|
||||
}
|
||||
String fileExtension = originalFileName != null ? originalFileName.split("\\.")[1] : "";
|
||||
|
|
@ -104,10 +90,18 @@ public class FileUtils {
|
|||
}
|
||||
String fileName = file.getOriginalFilename();
|
||||
String sourceFileName = System.currentTimeMillis() + "_" + file.getOriginalFilename();
|
||||
File targetFile = new File(UPLOAD_DIR, fileName);
|
||||
// 构建本地存储路径
|
||||
File uploadDir = new File(UPLOAD_DIR, "file");
|
||||
if (!uploadDir.exists()) {
|
||||
uploadDir.mkdirs();
|
||||
}
|
||||
|
||||
File targetFile = new File(uploadDir, fileName);
|
||||
file.transferTo(targetFile);
|
||||
String pathName = targetFile.getAbsolutePath();
|
||||
bean.setFilePath(pathName);
|
||||
|
||||
// 存储相对路径(统一使用 "/",不使用 File.separator)
|
||||
String relativePath = "/file/" + fileName;
|
||||
bean.setFilePath(relativePath);
|
||||
bean.setFileName(fileName);
|
||||
bean.setSourceFileName(sourceFileName);
|
||||
bean.setFileSize(new BigDecimal(file.getSize()));
|
||||
|
|
@ -132,7 +126,8 @@ public class FileUtils {
|
|||
String ext = fileExtension.toLowerCase().trim();
|
||||
return IMAGE_EXTENSIONS.contains(ext);
|
||||
}
|
||||
public static SysDictData selectDictDataByType(String dataType) {
|
||||
|
||||
public SysDictData selectDictDataByType(String dataType) {
|
||||
List<SysDictData> sysDictData = dictDataMapper.selectDictDataByType(dataType);
|
||||
return sysDictData.get(0);
|
||||
}
|
||||
Loading…
Reference in New Issue