| | |
| | | String fileType = FilenameUtils.getExtension(fileName); |
| | | return imgTypes.contains(fileType.toLowerCase()); |
| | | } |
| | | |
| | | /** |
| | | * 上传图标 |
| | | * @param moduleName |
| | | * @param file |
| | | * @return |
| | | */ |
| | | @Override |
| | | public String uploadIcon(String moduleName, MultipartFile file) { |
| | | // 兼容c端组件上传原理 |
| | | String originalFilename = file.getOriginalFilename(); |
| | | String fileType = originalFilename != null ? originalFilename : ""; |
| | | if (StrUtil.isEmpty(fileType) || fileType.contains("blob")) { |
| | | fileType = "blob.png"; |
| | | } |
| | | |
| | | // 提取文件扩展名 |
| | | String extension = ""; |
| | | int dotIndex = fileType.lastIndexOf('.'); |
| | | if (dotIndex > 0) { |
| | | extension = fileType.substring(dotIndex); |
| | | } |
| | | |
| | | String filename = moduleName + extension; |
| | | String path = filename; // 直接使用文件名作为路径 |
| | | |
| | | // 确保目标文件夹存在 |
| | | File targetDir = new File(PropertiesUtil.getProperty("loca.images.dir") + "/symbol"); |
| | | if (!targetDir.exists()) { |
| | | targetDir.mkdirs(); |
| | | // 设置目录权限为755 (rwxr-xr-x) |
| | | setFilePermissions(targetDir, "755"); |
| | | } |
| | | |
| | | // 构建本地文件路径 |
| | | File localFile = new File(targetDir, filename); |
| | | |
| | | // 打印上传路径 |
| | | log.info("LocalFileUploadService uploadFile localFilePath: {}", localFile.getAbsolutePath()); |
| | | |
| | | try { |
| | | // 将文件保存到本地 |
| | | file.transferTo(localFile); |
| | | |
| | | // 设置文件权限为644 (rw-r--r--) |
| | | setFilePermissions(localFile, "644"); |
| | | |
| | | // 如果需要自定义元数据,可以在此处理 |
| | | Map<String, String> metadata = new HashMap<>(); |
| | | metadata.put("x-amz-meta-myVal", "test"); |
| | | |
| | | // 返回文件名 |
| | | return "symbol/" + path; |
| | | |
| | | } catch (IOException e) { |
| | | log.error("LocalFileUploadService uploadFile IOException", e.getMessage(), e); |
| | | throw new YamiShopBindException("文件上传失败"); |
| | | } |
| | | } |
| | | } |