RuoYi
2026-03-25 50fc2989eeda1e5bbdf0a67dd15fa545db2370ed
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileUtils.java
@@ -8,8 +8,8 @@
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import com.ruoyi.common.core.utils.StringUtils;
@@ -97,8 +97,7 @@
        // 路径为文件且不为空则进行删除
        if (file.isFile() && file.exists())
        {
            file.delete();
            flag = true;
            flag = file.delete();
        }
        return flag;
    }
@@ -115,27 +114,20 @@
    }
    /**
     * 检查文件是否可下载
     * 校验文件路径合法性(安全性与扩展名)
     * 
     * @param resource 需要下载的文件
     * @param fileUrl 待校验的文件地址
     * @return true 正常 false 非法
     */
    public static boolean checkAllowDownload(String resource)
    public static boolean validateFilePath(String fileUrl)
    {
        // 禁止目录上跳级别
        if (StringUtils.contains(resource, ".."))
        if (StringUtils.contains(fileUrl, ".."))
        {
            return false;
        }
        // 检查允许下载的文件规则
        if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource)))
        {
            return true;
        }
        // 不在允许下载的文件规则
        return false;
        // 判断是否在允许下载的文件规则内
        return ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(fileUrl));
    }
    /**