UploadUtils.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.hb.proj.utils;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import org.apache.commons.io.FileUtils;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.web.multipart.MultipartFile;
  7. import com.hb.proj.model.UploadResult;
  8. import com.hb.xframework.dao.util.UUIDHexGenerator;
  9. import jakarta.servlet.http.HttpServletRequest;
  10. public class UploadUtils {
  11. public static UploadResult saveFile(HttpServletRequest request,MultipartFile file,String subFolder,String accessPathPrefix) throws IllegalStateException, IOException {
  12. String OriginalFilename = file.getOriginalFilename();//获取原文件名
  13. String suffixName = OriginalFilename.substring(OriginalFilename.lastIndexOf("."));
  14. String[] subPaths=subFolder.split("\\.|/");
  15. String basePath=request.getSession().getServletContext().getRealPath("");
  16. String relPath="upload"+File.separator+StringUtils.join(subPaths,File.separator);
  17. basePath=basePath+File.separator+relPath;
  18. FileUtils.forceMkdir(new File(basePath));
  19. UUIDHexGenerator uuid=UUIDHexGenerator.getInstance();
  20. String newFileName=uuid.generate()+suffixName;
  21. File localFile=new File(basePath+File.separator+newFileName);
  22. file.transferTo(localFile);
  23. String accessPath=accessPathPrefix+"/upload/"+StringUtils.join(subPaths,"/")+"/"+newFileName;
  24. return new UploadResult(newFileName,(relPath+File.separator+newFileName),accessPath);
  25. }
  26. public static void removeFile(HttpServletRequest request,String filePath){
  27. try {
  28. String basePath=request.getSession().getServletContext().getRealPath("");
  29. filePath=basePath+File.separator+filePath;
  30. File filedev=new File(filePath);
  31. if(filedev.exists()){
  32. FileUtils.forceDelete(filedev);
  33. }
  34. } catch (IOException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38. }