判断上传的文件和数据库保存的文件是否一致
2018-01-17 11:09
267 查看
思路:计算文件的 MD5 值,文件的MD5值可以代表一个文件的唯一标示,如果两个文件的MD5值相等可以认为文件是一致的
import java.io.File; import java.io.FileInputStream; import java.math.BigInteger; import java.security.MessageDigest; import java.util.HashMap; import java.util.Map; public class FileDigest { /** * 获取单个文件的MD5值! * @param file * @return */ public static String getFileMD5(File file) { if (!file.isFile()){ return null; } MessageDigest digest = null; FileInputStream in=null; byte buffer[] = new byte[1024]; int len; try { digest = MessageDigest.getInstance("MD5"); in = new FileInputStream(file); while ((len = in.read(buffer, 0, 1024)) != -1) { digest.update(buffer, 0, len); } in.close(); } catch (Exception e) { e.printStackTrace(); return null; } BigInteger bigInt = new BigInteger(1, digest.digest()); return bigInt.toString(16); } /** * 获取文件夹中文件的MD5值 * @param file * @param listChild ;true递归子目录中的文件 * @return */ public static Map<String, String> getDirMD5(File file,boolean listChild) { if(!file.isDirectory()){ return null; } //<filepath,md5> Map<String, String> map=new HashMap<String, String>(); String md5; File files[]=file.listFiles(); for(int i=0;i<files.length;i++){ File f=files[i]; if(f.isDirectory()&&listChild){ map.putAll(getDirMD5(f, listChild)); } else { md5=getFileMD5(f); if(md5!=null){ map.put(f.getPath(), md5); } } } return map; } public static void main(String[] args) { File file1 = new File("a.txt"); File file2 = new File("b.txt"); System.out.println(getFileMD5(file1).equals(getFileMD5(file2))); } }
相关文章推荐
- 判断数据库和磁盘中文件是否一致
- JS 判断上传文件是否为EXCEL 文件
- php判断上传的文件是否是图片类型
- 上传,解析Excel文件并保存数据到数据库
- java判断文件夹是否存在并上传文件
- 将文件上传、下载(以二进制流保存到数据库)
- 上传文件保存到数据库
- 检查数据库名称与数据库逻辑名、物理文件名称是否一致,并生成修复脚本
- 上传sftp,创建20171024目录,判断目录是否存在,复制文件,判断文件字符集
- PHP 合理配置实现文件上传及保存文件到数据库
- 将文件上传、下载(以二进制流保存到数据库)
- PHP上传图片时判断上传文件是否为可用图片的方法
- cxf web service 代码片段,保存远端上传的文件到数据库
- 如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
- thinkphp表单上传文件并将文件路径保存到数据库中
- 判断上传文件是否是Excel文件
- js判断上传文件大小+保存文件
- java判断tomcat下面是否存在某个文件夹并&java上传文件时对文件夹的判断问题
- 大文件上传代码,根据下拉列表框选中的市县镇名保存文件到指定目录下,并将文件相关信息写进数据库
- PHP文件上传判断file是否己选择上传文件的方法