以前在上传文件的时候都是直接上传,并没有考虑到文件重复上传的情况,但是这并不好,浪费资源,那么该如何处理呢。
我们可以使用PHP的md5_file及sha1_file来处理,同样的文件,它的md5_file值及sha1_file值是一样的。
- md5_file($filename) — 计算指定文件的 MD5 散列值(具体使用方法,请参考手册)
- md5_file($filename) — 计算指定文件的 MD5 散列值(具体使用方法,请参考手册)
我们需要建立一个文件表,里面保存着文件路径、文件名、添加时间、md5_file值,sha1_file值等信息。
当上传文件时,先检测表中是否存在相同的md5_file值及sha1_file值的记录,这里就存在两种可能:
- 存在,返回记录信息。
- 不存在,保存文件,找把文件路径、文件名、添加时间、md5_file值,sha1_file值等添加到文件表中。