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

时间:2018-05-14 17:47:23

标签: php

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

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

2 个答案:

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