| | |
| | | import cn.hutool.core.io.FileTypeUtil; |
| | | import cn.hutool.core.io.FileUtil; |
| | | import cn.hutool.core.lang.UUID; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.sandu.common.enums.FileStorageEnums; |
| | | import com.sandu.common.execption.BusinessException; |
| | | import com.sandu.common.file.*; |
| | | import com.sandu.common.file.config.FileProperties; |
| | | import com.sandu.common.file.config.NovaFileConfig; |
| | | import com.sandu.common.util.SpringContextHolder; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang.StringEscapeUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | |
| | | import java.math.BigInteger; |
| | | import java.security.MessageDigest; |
| | | import java.time.LocalDate; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Optional; |
| | | |
| | | /** |
| | |
| | | @AllArgsConstructor |
| | | public class LocalFileUploadImpl implements IFileUpload { |
| | | |
| | | private static List<String> videoSuffixList = CollectionUtil.newArrayList("mp4", "mov", "avi", "mkv", "m4v", "wmv", |
| | | "asf", "asx", "rm", "rmvb", "3gp", "dat", "flv", "vob"); |
| | | private static List<String> videoSuffixList = CollectionUtil.newArrayList("mp4", "mov", "avi", "mkv", "m4v", "wmv", "asf", "asx", "rm", "rmvb", "3gp", "dat", "flv", "vob"); |
| | | |
| | | private final FileToThumbnail fileToThumbnail; |
| | | |
| | | @Override |
| | | public FileUploadDto uploadFile(MultipartFile multipartFile) { |
| | | FileProperties fileProperties = SpringContextHolder.getBean(FileProperties.class); |
| | | NovaFileConfig fileProperties = SpringContextHolder.getBean(NovaFileConfig.class); |
| | | String originalFilename = multipartFile.getOriginalFilename(); |
| | | long size = multipartFile.getSize(); |
| | | String suffix = FileUtil.getSuffix(originalFilename); |
| | |
| | | File dest; |
| | | try { |
| | | String type = Optional.ofNullable(FileTypeUtil.getType(multipartFile.getInputStream(), originalFilename)).orElse(""); |
| | | dest = new File(fileProperties.getUploadRootPath() + type + File.separator + date + File.separator + fileName).getCanonicalFile(); |
| | | dest = new File(fileProperties.getUploadRootPath() + File.separator + type + File.separator + date + File.separator + fileName).getCanonicalFile(); |
| | | |
| | | if (!dest.getParentFile().exists()) { |
| | | dest.getParentFile().mkdirs(); |
| | |
| | | FileUploadDto uploadDto = new FileUploadDto(); |
| | | uploadDto.setOriginName(originalFilename); |
| | | uploadDto.setFileName(fileName); |
| | | uploadDto.setRealUrl(dest.getPath()); |
| | | uploadDto.setFileUrl(fileProperties.getRealUrl() + dest.getPath()); |
| | | uploadDto.setRealUrl(dest.getPath().replace(File.separator,"/")); |
| | | uploadDto.setFileUrl(dest.getPath().replace(fileProperties.getUploadRootPath(), "").replace(File.separator,"/")); |
| | | uploadDto.setFileType(FileUtil.getType(dest)); |
| | | uploadDto.setStorageType(FileStorageEnums.LOCAL.getCode()); |
| | | uploadDto.setFileSize(size); |
| | |
| | | } |
| | | try { |
| | | InputStream inputStream = multipartFile.getInputStream(); |
| | | String screenShot = fileProperties.getUploadRootPath() + uploadDto.getFileType() |
| | | + File.separator + date + File.separator + "screenShot" + uuidStr + ".jpg"; |
| | | String screenShot = fileProperties.getUploadRootPath() + uploadDto.getFileType() + File.separator + date + File.separator + "screenShot" + uuidStr + ".jpg"; |
| | | String thumbnailForVideo = fileToThumbnail.getThumbnailForVideo(inputStream, screenShot); |
| | | uploadDto.setScreenShot(fileProperties.getRealUrl() + thumbnailForVideo); |
| | | uploadDto.setScreenShot(thumbnailForVideo); |
| | | inputStream.close(); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | // String a = "E:\\\\file\\\\png\\\\2022-11-14\\\\bc8cbe61-2c81-4dac-911a-91b711eebc24\\\\png"; |
| | | // System.out.println(a); |
| | | // System.out.println(a.replaceAll("\\\\", "/")); |
| | | File f = null; |
| | | try { |
| | | f = new File("E:\\file\\png\\2022-11-14\\cc4ce72e-2304-4f45-81e5-3b57519d57b6.png").getCanonicalFile(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | System.out.println(File.separator); |
| | | System.out.println(f.getPath()); |
| | | } |
| | | } |