如何在代码中截取文件名后缀以及自动生成唯一文件名并拼接后缀

1、先定义一个字符串,内容是一个文件名.文件类型(例如:aaa.jpg)

2、然后用String的substring方法将字符串进行拼接,需要传入一个int类型参数(具体可以看String的API),这个int我们直接以文件名中的“.”计算得出,所以需要调用indexOf方法,最终得到“.xxxx”的字符串(具体明确substring、indexOf方法需要传什么参数可以直接去看api,都在String包中)

3、用java.util包中的UUID类,调用randomUUID方法,不需要传参数,但调完后需要再用toString方法,将UUID对象转换成字符串,即可获得一个唯一字符串,如果还需要进行拼接后缀的话,将第三步,第二步获得的字符串进行拼接即可。

 

 

 

以上方法主要运用在文件上传的时候,因为客户端传过来的文件名可能会在数据库发生重复,所以需要新生成一个唯一的文件名,将生成后的文件名存储到数据库中

 

所以这里再额外提一个点,就是获取从客户端传输过来的文件名该如何接收?(此例具体实施体现基于使用SSM框架)

1、文件传输都是发的post请求,所以映射路径的时候可以指定POST,当然也可以不指定,默认GET\POST都能接收到

2、接收数据的参数类型是MultipartFile,参数名称则必须跟前端发送请求的名称一致

3、获取到的MultipartFile对象,需要调用getOriginalFilename方法获取该文件的名称

4、获取到文件名称之后,就可以用上面的截取、拼接方法生成新的唯一名称,然后存入数据库了

 

posted @ 2020-10-12 21:32  名难  阅读(753)  评论(0编辑  收藏  举报