使用文件大小 php 检查文件是否存在



我有一个网站,用户可以上传照片,但重要的是他们不要上传同一张照片两次。我需要将每个上传的文件与目录中的所有照片进行比较,以查看图像是否已存在。一个问题 - 我不能使用文件名。有没有办法一次比较所有照片的大小以查看是否有匹配

?我还没有尝试任何代码,因为我不知道这是否可能。

您正在寻找的是一个哈希函数,它将文件作为输入并返回一个(小得多的(值,该值对于文件是唯一的。 上传新文件后,将新哈希值与先前哈希值的数据库进行比较,以确定它是否为新文件。

我会考虑使用 PHP 哈希函数,您将输入上传的文件(我假设该文件在变量中(,然后返回哈希值。 如果您实际上在计算哈希值之前将文件保存到磁盘,则sha1_file就是您要查找的内容。

使用以下内容:-

<?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;
}
?>

最新更新