龙空技术网

【避坑指南】分割文件的文件名和后缀

JAVA一问一答 90

前言:

此刻朋友们对“java文件扩展名是什么”大概比较着重,同学们都想要知道一些“java文件扩展名是什么”的相关内容。那么小编也在网摘上搜集了一些对于“java文件扩展名是什么””的相关知识,希望姐妹们能喜欢,看官们快快来了解一下吧!

现在有这样一个业务场景:为了防止有用户恶意攻击系统,现在系统需要对用户上传的文件进行校验,只允许用户上传后缀为docx、xls、xlsx、pdf、txt、jpg等格式的文件。

这是一个非常简单的安全需求了,我们的设计思路基本上都是先获取到用户上传的文件的文件名,然后对文件名进行解析,获得文件后缀,最后判断后缀在不在我们设置的白名单上。

现在我们的问题是如何对文件名进行解析,获得文件后缀?

很简单,可以直接使用.分割文件名,获取文件最后的后缀,如下:

大家可以想一想,上面的这种写法有没有问题?

其实有问题,如果有这样一个文件名:财务报表-2023.07.12.xlsx,上面的代码还适用吗?

这就是我们最近在生产环境中发生的血淋淋的教训,分割文件名获取后缀时错误,导致用户无法上传附件,业务无法进行。

那应该怎么改呢,其实也很简单,按最后一个“.”拆分就可以了,如下是一种改法:

今天的避坑指南就到这里了,魔鬼藏在细节里

标签: #java文件扩展名是什么