ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
ÎļþÒÑɾ³ý ruoyi-admin/src/main/resources/application.yml
@@ -8,8 +8,6 @@ copyrightYear: 2021 # å®ä¾æ¼ç¤ºå¼å ³ demoEnabled: true # æä»¶è·¯å¾ profile: ./ruoyi/uploadPath # è·åipå°åå¼å ³ addressEnabled: true ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java
@@ -9,7 +9,7 @@ /** * 读å项ç®ç¸å ³é ç½® * * * @author ruoyi */ @@ -32,45 +32,13 @@ /** å®ä¾æ¼ç¤ºå¼å ³ */ private boolean demoEnabled; /** ä¸ä¼ è·¯å¾ */ @Getter private static String profile; /** è·åå°åå¼å ³ */ @Getter private static boolean addressEnabled; public void setProfile(String profile) { RuoYiConfig.profile = profile; } public void setAddressEnabled(boolean addressEnabled) { RuoYiConfig.addressEnabled = addressEnabled; } /** * è·å头åä¸ä¼ è·¯å¾ */ public static String getAvatarPath() { return getProfile() + "/avatar"; } /** * è·åä¸è½½è·¯å¾ */ public static String getDownloadPath() { return getProfile() + "/download/"; } /** * è·åä¸ä¼ è·¯å¾ */ public static String getUploadPath() { return getProfile() + "/upload"; } } ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
@@ -1,10 +1,7 @@ package com.ruoyi.common.utils.file; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ArrayUtil; import com.ruoyi.common.utils.StringUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -17,77 +14,6 @@ */ public class FileUtils extends FileUtil { public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; /** * æä»¶åç§°éªè¯ * * @param filename æä»¶åç§° * @return true æ£å¸¸ false éæ³ */ public static boolean isValidFilename(String filename) { return filename.matches(FILENAME_PATTERN); } /** * æ£æ¥æä»¶æ¯å¦å¯ä¸è½½ * * @param resource éè¦ä¸è½½çæä»¶ * @return true æ£å¸¸ false éæ³ */ public static boolean checkAllowDownload(String resource) { // ç¦æ¢ç®å½ä¸è·³çº§å« if (StringUtils.contains(resource, "..")) { return false; } // æ£æ¥å 许ä¸è½½çæä»¶è§å if (ArrayUtil.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) { return true; } // ä¸å¨å 许ä¸è½½çæä»¶è§å return false; } /** * ä¸è½½æä»¶åéæ°ç¼ç * * @param request 请æ±å¯¹è±¡ * @param fileName æä»¶å * @return ç¼ç åçæä»¶å */ public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException { final String agent = request.getHeader("USER-AGENT"); String filename = fileName; if (agent.contains("MSIE")) { // IEæµè§å¨ filename = URLEncoder.encode(filename, StandardCharsets.UTF_8.toString()); filename = filename.replace("+", " "); } else if (agent.contains("Firefox")) { // ç«çæµè§å¨ filename = new String(fileName.getBytes(), "ISO8859-1"); } else if (agent.contains("Chrome")) { // googleæµè§å¨ filename = URLEncoder.encode(filename, StandardCharsets.UTF_8.toString()); } else { // å ¶å®æµè§å¨ filename = URLEncoder.encode(filename, StandardCharsets.UTF_8.toString()); } return filename; } /** * ä¸è½½æä»¶åéæ°ç¼ç ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java
ÎļþÒÑɾ³ý ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
@@ -1,5 +1,6 @@ package com.ruoyi.framework.config; import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -9,9 +10,6 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.Constants; import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; /** * éç¨é ç½® @@ -27,8 +25,6 @@ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { /** æ¬å°æä»¶ä¸ä¼ è·¯å¾ */ registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**").addResourceLocations("file:" + RuoYiConfig.getProfile() + "/"); } /** ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -107,8 +107,6 @@ "/**/*.js", "/profile/**" ).permitAll() .antMatchers("/common/download**").anonymous() .antMatchers("/common/download/resource**").anonymous() .antMatchers("/doc.html").anonymous() .antMatchers("/swagger-resources/**").anonymous() .antMatchers("/webjars/**").anonymous() ruoyi-ui/src/main.js
@@ -16,7 +16,7 @@ import './permission' // permission control import { getDicts } from "@/api/system/dict/data"; import { getConfigKey } from "@/api/system/config"; import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi"; import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"; import Pagination from "@/components/Pagination"; // èªå®ä¹è¡¨æ ¼å·¥å ·ç»ä»¶ import RightToolbar from "@/components/RightToolbar" @@ -39,7 +39,6 @@ Vue.prototype.addDateRange = addDateRange Vue.prototype.selectDictLabel = selectDictLabel Vue.prototype.selectDictLabels = selectDictLabels Vue.prototype.download = download Vue.prototype.handleTree = handleTree Vue.prototype.msgSuccess = function (msg) { ruoyi-ui/src/utils/ruoyi.js
@@ -96,11 +96,6 @@ return actions.join('').substring(0, actions.join('').length - 1); } // éç¨ä¸è½½æ¹æ³ export function download(fileName) { window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true; } // åç¬¦ä¸²æ ¼å¼å(%s ) export function sprintf(str) { var args = arguments, flag = true, i = 1;