【问题标题】:PHP compare blob with uploaded filePHP将blob与上传的文件进行比较
【发布时间】:2023-03-31 12:31:01
【问题描述】:

我需要将数据库中存储为 blob 的文件与最近上传的文件进行比较,以检查它们是否不同。

我被卡住了,因为即使是同一个文件,二进制文件也是不同的。 这是我正在使用的代码:

$file=file_get_contents($_FILES['upload']['tmp_name'][0]);
if (is_uploaded_file($file)) {
                $doc = fopen($file, 'rb');
            }
    $retRow = $db->prepare($select_row);
                $retRow->execute();
                $data = $retRow->fetchAll(PDO::FETCH_ASSOC); 
    
    if($data[0][$this->blob_embedded->blobField]!==$doc){
    
    //do stuff here
    }

【问题讨论】:

    标签: php file-upload blob


    【解决方案1】:

    您需要将 blob 转换为字符串,因为数据库会返回一个流资源。

    对于文件资源,您可以使用等效的 file_get_contents() :stream_get_contents()

    然后,当您获得文件和 blob 中的内容时,您可以进行比较。

    但我认为这样比较文件内容不是一个好主意。也许将 blob 写入一个临时文件并将此文件与 sha1_file() 函数进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      相关资源
      最近更新 更多