需求:应用所学技术实现 1. 客户端向服务器端请求存储一个图片 2. 服务器端进行判定,本地是否存在此图片,并将结果返回给客户端 3. 客户端根据服务器端返回的结果判定,如果服务器端存在该文件则结束程序,如果服务器端不存在该文件,则把文件上传到服务器端 4. 服务器端接收到数据然后把数据存储到服务器本地 附加需求:要求要上传的文件名是通过键盘录入的,并且要保证录入的路径是文件路径
用表记录已有文件的MD5码和保存的路径,有新文件过来的话,解析他的MD5,然后查找数据库是否有记录,有就是存在了,没有就是新文件;
一般来说不是按照文件名的判断是否一个文件的
public static String getMD5Three(String path) {
2 BigInteger bi = null;
3 try {
4 byte[] buffer = new byte[8192];
5 int len = 0;
6 MessageDigest md = MessageDigest.getInstance("MD5");
7 File f = new File(path);
8 FileInputStream fis = new FileInputStream(f);
9 while ((len = fis.read(buffer)) != -1) {
10 md.update(buffer, 0, len);
11 }
12 fis.close();
13 byte[] b = md.digest();
14 bi = new BigInteger(1, b);
15 } catch (NoSuchAlgorithmException e) {
16 e.printStackTrace();
17 } catch (IOException e) {
18 e.printStackTrace();
19 }
20 return bi.toString(16);
21 }
只是客户端只对于一个用户来说 那只需判断文件是否重复 要是有分多用户的 就的分文件夹保存 然后判断此文件夹是否有这个文件
文件名可以用md5进行保存
然后通过new File("文件路径") file.isexist进行判断文件是否存在 路径=保存的文件夹+上传的md5加后缀名