当前位置:   article > 正文

Java SpringMVC上传文件并去重(MD5中MappedByteBuffer的坑)_文件上传去重校验 java

文件上传去重校验 java

最近在写一个管理系统,有图片上传的需求。使用SpringMVC的MultipartFile很好实现,就不赘述。之前一直使用随机生成的文件名保存文件去重,但是这样无法保证文件的唯一性,之后自己想着添加一个唯一去重的功能,首先想到了MD5的。

正好我在使用的MD5工具类中有getFileMD5方法,所以第一版本直接使用工具类的方法获取文件MD5:

思路1: 先将接受到的MultipartFile对象转换成File对象,然后获取MD5值,用MD5值作为文件名保存文件,删掉临时保存的File文件;

/**

     * 图片上传去重,错误代码

     *

     *@paramimage

     */

    @RequestMapping("/upload")

    publicvoidupload(@RequestParamMultipartFilemultipartFile) {

         try{

             if(multipartFile!=null) {

                 // 获取文件原名

                 StringoriginalFilename=multipartFile.getOriginalFilename();

                 // 获取文件扩展名

                 Stringextension= FileUtils.getExtensionByName(originalFilename);

                 // 随机生成唯一临时名称

                 StringuuidString= CommonUtil.getUUIDString(32);

                 StringnewFileName=uuidString+"."+extension;

                 // 将文件临时保存

                 Filedest=newFile(savePath,newFileName);

                 if(!dest.getParentFile().exists()) {

                      dest.getParentFile().mkdirs();

                 }

                 multipartFile.transferTo(dest);

                 // 获取文件MD5值

                 StringfileMD5= MD5.getFileMD5(dest);

                 // 将MD5值作为最终文件名

                 StringfinalName=fileMD5+"."+extension;

                 FilefinalFile=newFile(dest.getParent() +"/"+finalName);

                 if(!finalFile.exists()) {

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/871567
推荐阅读
相关标签
  

闽ICP备14008679号