gpt4 book ai didi

java - java中如何验证文件名

转载 作者:行者123 更新时间:2023-12-01 08:45:38 26 4
gpt4 key购买 nike

我正在处理覆盖性问题,我需要验证文件名 在java中使用正则表达式。在我的应用程序中支持 .pdf 、 .txt 、 csv 等。我的 从 user 获取的文件名为 xxx.txt。我想验证我的文件名 具有正确的扩展格式并且不包含任何其他特殊字符 比点(例如.txt)。

filePath = properties.getProperty("DOCUMENT.LIBRARY.LOCATION");
String fileName = (String) request.getParameter("read");

只有当文件路径完成正确的验证时,下面的代码才应该工作。

filePath += "/" + fileName;

最佳答案

这是一个糟糕的答案,因为它只验证文件名以所需的扩展名结尾,但不验证原始问题中请求的文件名的其余部分。更像这样的东西会更好:

fileName.matches("[-_. A-Za-z0-9]+\\.(pdf|txt|csv)");

这可确保文件名仅包含一个或多个 -、_、句点、空格或字母数字字符,并在文件名末尾紧跟 .pdf、.txt 或 .csv 之一。您的系统可能允许文件名中包含其他字符,如果需要,您可以将它们添加到此列表中。另一种不太安全的方法是防止“坏”字符,例如:

fileName.matches("[^/\]+\\.(pdf|txt|csv)");

这只是防止/或\字符出现在文件名中所需的结尾扩展名之前。但这并不能阻止潜在的其他危险字符,例如 NULL 字节。

关于java - java中如何验证文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44366308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com