From c6ef8fb06f8f75ece7e4d6669af01bebb051d217 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 03 六月 2023 17:20:56 +0800 Subject: [PATCH] 优化巡检 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java | 158 +++++++++++++++++++++++----------------------------- 1 files changed, 70 insertions(+), 88 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java index b9bc834..d2dcff2 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java @@ -11,6 +11,7 @@ import java.nio.charset.StandardCharsets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; import com.ruoyi.common.config.ARDConfig; @@ -21,44 +22,35 @@ /** * 鏂囦欢澶勭悊宸ュ叿绫� - * + * * @author ruoyi */ -public class FileUtils -{ +public class FileUtils { public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; /** * 杈撳嚭鎸囧畾鏂囦欢鐨刡yte鏁扮粍 - * + * * @param filePath 鏂囦欢璺緞 - * @param os 杈撳嚭娴� + * @param os 杈撳嚭娴� * @return */ - public static void writeBytes(String filePath, OutputStream os) throws IOException - { + public static void writeBytes(String filePath, OutputStream os) throws IOException { FileInputStream fis = null; - try - { + try { File file = new File(filePath); - if (!file.exists()) - { + if (!file.exists()) { throw new FileNotFoundException(filePath); } fis = new FileInputStream(file); byte[] b = new byte[1024]; int length; - while ((length = fis.read(b)) > 0) - { + while ((length = fis.read(b)) > 0) { os.write(b, 0, length); } - } - catch (IOException e) - { + } catch (IOException e) { throw e; - } - finally - { + } finally { IOUtils.close(os); IOUtils.close(fis); } @@ -71,33 +63,28 @@ * @return 鐩爣鏂囦欢 * @throws IOException IO寮傚父 */ - public static String writeImportBytes(byte[] data) throws IOException - { + public static String writeImportBytes(byte[] data) throws IOException { return writeBytes(data, ARDConfig.getImportPath()); } /** * 鍐欐暟鎹埌鏂囦欢涓� * - * @param data 鏁版嵁 + * @param data 鏁版嵁 * @param uploadDir 鐩爣鏂囦欢 * @return 鐩爣鏂囦欢 * @throws IOException IO寮傚父 */ - public static String writeBytes(byte[] data, String uploadDir) throws IOException - { + public static String writeBytes(byte[] data, String uploadDir) throws IOException { FileOutputStream fos = null; String pathName = ""; - try - { + try { String extension = getFileExtendName(data); pathName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension; File file = FileUploadUtils.getAbsoluteFile(uploadDir, pathName); fos = new FileOutputStream(file); fos.write(data); - } - finally - { + } finally { IOUtils.close(fos); } return FileUploadUtils.getPathFileName(uploadDir, pathName); @@ -105,17 +92,15 @@ /** * 鍒犻櫎鏂囦欢 - * + * * @param filePath 鏂囦欢 * @return */ - public static boolean deleteFile(String filePath) - { + public static boolean deleteFile(String filePath) { boolean flag = false; File file = new File(filePath); // 璺緞涓烘枃浠朵笖涓嶄负绌哄垯杩涜鍒犻櫎 - if (file.isFile() && file.exists()) - { + if (file.isFile() && file.exists()) { flag = file.delete(); } return flag; @@ -123,32 +108,28 @@ /** * 鏂囦欢鍚嶇О楠岃瘉 - * + * * @param filename 鏂囦欢鍚嶇О * @return true 姝e父 false 闈炴硶 */ - public static boolean isValidFilename(String filename) - { + public static boolean isValidFilename(String filename) { return filename.matches(FILENAME_PATTERN); } /** * 妫�鏌ユ枃浠舵槸鍚﹀彲涓嬭浇 - * + * * @param resource 闇�瑕佷笅杞界殑鏂囦欢 * @return true 姝e父 false 闈炴硶 */ - public static boolean checkAllowDownload(String resource) - { + public static boolean checkAllowDownload(String resource) { // 绂佹鐩綍涓婅烦绾у埆 - if (StringUtils.contains(resource, "..")) - { + if (StringUtils.contains(resource, "..")) { return false; } // 妫�鏌ュ厑璁镐笅杞界殑鏂囦欢瑙勫垯 - if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) - { + if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) { return true; } @@ -158,33 +139,25 @@ /** * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮� - * - * @param request 璇锋眰瀵硅薄 + * + * @param request 璇锋眰瀵硅薄 * @param fileName 鏂囦欢鍚� * @return 缂栫爜鍚庣殑鏂囦欢鍚� */ - public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException - { + public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException { final String agent = request.getHeader("USER-AGENT"); String filename = fileName; - if (agent.contains("MSIE")) - { + if (agent.contains("MSIE")) { // IE娴忚鍣� filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+", " "); - } - else if (agent.contains("Firefox")) - { + } else if (agent.contains("Firefox")) { // 鐏嫄娴忚鍣� filename = new String(fileName.getBytes(), "ISO8859-1"); - } - else if (agent.contains("Chrome")) - { + } else if (agent.contains("Chrome")) { // google娴忚鍣� filename = URLEncoder.encode(filename, "utf-8"); - } - else - { + } else { // 鍏跺畠娴忚鍣� filename = URLEncoder.encode(filename, "utf-8"); } @@ -194,11 +167,10 @@ /** * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮� * - * @param response 鍝嶅簲瀵硅薄 + * @param response 鍝嶅簲瀵硅薄 * @param realFileName 鐪熷疄鏂囦欢鍚� */ - public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException - { + public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException { String percentEncodedFileName = percentEncode(realFileName); StringBuilder contentDispositionValue = new StringBuilder(); @@ -220,36 +192,27 @@ * @param s 闇�瑕佺櫨鍒嗗彿缂栫爜鐨勫瓧绗︿覆 * @return 鐧惧垎鍙风紪鐮佸悗鐨勫瓧绗︿覆 */ - public static String percentEncode(String s) throws UnsupportedEncodingException - { + public static String percentEncode(String s) throws UnsupportedEncodingException { String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); return encode.replaceAll("\\+", "%20"); } /** * 鑾峰彇鍥惧儚鍚庣紑 - * + * * @param photoByte 鍥惧儚鏁版嵁 * @return 鍚庣紑鍚� */ - public static String getFileExtendName(byte[] photoByte) - { + public static String getFileExtendName(byte[] photoByte) { String strFileExtendName = "jpg"; if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) - && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) - { + && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) { strFileExtendName = "gif"; - } - else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) - { + } else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) { strFileExtendName = "jpg"; - } - else if ((photoByte[0] == 66) && (photoByte[1] == 77)) - { + } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) { strFileExtendName = "bmp"; - } - else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) - { + } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) { strFileExtendName = "png"; } return strFileExtendName; @@ -257,14 +220,12 @@ /** * 鑾峰彇鏂囦欢鍚嶇О /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png - * + * * @param fileName 璺緞鍚嶇О * @return 娌℃湁鏂囦欢璺緞鐨勫悕绉� */ - public static String getName(String fileName) - { - if (fileName == null) - { + public static String getName(String fileName) { + if (fileName == null) { return null; } int lastUnixPos = fileName.lastIndexOf('/'); @@ -275,17 +236,38 @@ /** * 鑾峰彇涓嶅甫鍚庣紑鏂囦欢鍚嶇О /profile/upload/2022/04/16/ruoyi.png -- ruoyi - * + * * @param fileName 璺緞鍚嶇О * @return 娌℃湁鏂囦欢璺緞鍜屽悗缂�鐨勫悕绉� */ - public static String getNameNotSuffix(String fileName) - { - if (fileName == null) - { + public static String getNameNotSuffix(String fileName) { + if (fileName == null) { return null; } String baseName = FilenameUtils.getBaseName(fileName); return baseName; } + + /** + * 鍒涘缓涓�涓枃浠惰幏鍙栨枃浠惰矾寰� + * + * @param fileName 璺緞鍚嶇О + * @return 鏂囦欢璺緞鍜屽悗缂�鐨勫悕绉� + */ + public static String createFile(String fileName) { + try { + File file = new File(fileName); + if (!file.exists()) { + File fileParent = file.getParentFile(); + if (!fileParent.exists()) { + fileParent.mkdirs(); + } + file.createNewFile(); + } + return file.getCanonicalPath(); + + } catch (Exception ex) { + return ""; + } + } } -- Gitblit v1.9.3