PHP / Mysql比较上传的文件以确保没有冗余数据

时间:2013-02-14 04:11:25

标签: php mysql

所以我将上传的文件存储在mysql数据库中。 为了确保数据库中没有重复文件,我创建了一个非常文件的md5哈希并存储它。

在文件上传时,我获取新文件的哈希值并检查它是否已存在于数据库中。

数据库表

id,file_name,file_binary,file_hash

现在,因为我发现存在哈希冲突的可能性,我想逐字节地比较文件。

使用PHP / Mysql执行此操作的最佳和最快方法是什么,或者确保文件不会上载两次(以节省存储空间)的最佳方法。

提前致谢!

1 个答案:

答案 0 :(得分:0)

减少已经很小的碰撞风险的一种方法是使用不同的算法(如SHA1)创建另一个哈希值。

数据库表

  

id,file_name,file_binary,file_hash_md5,file_hash_sha1

检查查询可能如下所示:

SELECT id FROM files_table WHERE file_hash_md5 = '78b7d929110959d1de58a32e9d331512' AND file_hash_sha1 = 'cc73882a1395af392b6cb005c45d19869bfa485a'