我有一个用户上传照片的网站,但重要的是他们不会上传同一张照片两次。我需要将每个上传的文件与目录中的所有照片进行比较,以查看图像是否已存在。一个问题 - 我无法使用文件名。有没有办法一次比较所有照片的大小,看看是否匹配?
我还没有尝试过任何代码,因为我不知道这是否可行。
答案 0 :(得分:1)
您正在寻找的是哈希函数,它将文件作为输入并返回一个(小得多)值,该值对于文件是唯一的。上传新文件后,您可以将新哈希值与先前哈希值的数据库进行比较,以确定它是否是新文件。
我会研究使用PHP hash函数,你会输入上传的文件(我假设它是在一个变量中),并获得一个哈希值。如果您实际上是在计算哈希值之前将文件保存到磁盘,则sha1_file就是您要查找的内容。
答案 1 :(得分:-2)
使用以下内容: -
<?php
$directoryName = 'imagesDir';
$fileToBeChecked = 'newlyUploadedImageFilePath';
function checkIfSameSizeFileExistsInDirectory($dir, $file){
$entries = array_diff(scandir($dir), array('.', '..'));
foreach ($entries as $entry){
if(!is_dir($entry)){
if(filesize($entry)==filesize($file)){
return true;
}
}
}
return false;
}
?>