赞
踩
最近在写一个管理系统,有图片上传的需求。使用SpringMVC的MultipartFile很好实现,就不赘述。之前一直使用随机生成的文件名保存文件去重,但是这样无法保证文件的唯一性,之后自己想着添加一个唯一去重的功能,首先想到了MD5的。
正好我在使用的MD5工具类中有getFileMD5方法,所以第一版本直接使用工具类的方法获取文件MD5:
/**
* 图片上传去重,错误代码
*
*@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()) {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。