<?php
$sourceImagepath = encodeImage("folder/source.png");
$uploadedImagepath = encodeImage("temp/uploded.png");
if(areEqual($sourceImagepath , $uploadedImagepath)){
echo "Image is already Exist";
return false;
}
echo "Image Upload";
function encodeImage($ImagePath){
$ext = pathinfo($ImagePath, PATHINFO_EXTENSION);
$Imgcontent = file_get_contents($ImagePath);
$base64 = 'data:image/' . $ext . ';base64,' . base64_encode($Imgcontent);
return $base64;
}
function areEqual($sourceImage, $uploadedImage){
if (strcmp($sourceImage, $uploadedImage) !== 0) {
return false;
}
return true;
}
?>
或者
<?php
function areEqual($firstPath, $secondPath, $chunkSize = 500){
// First check if file are not the same size as the fastest method
if(filesize($firstPath) !== filesize($secondPath)){
return false;
}
// Compare the first ${chunkSize} bytes
// This is fast and binary files will most likely be different
$fp1 = fopen($firstPath, 'r');
$fp2 = fopen($secondPath, 'r');
$chunksAreEqual = fread($fp1, $chunkSize) == fread($fp2, $chunkSize);
fclose($fp1);
fclose($fp2);
if(!$chunksAreEqual){
return false;
}
// Compare hashes
// SHA1 calculates a bit faster than MD5
$firstChecksum = sha1_file($firstPath);
$secondChecksum = sha1_file($secondPath);
if($firstChecksum != $secondChecksum){
return false;
}
return true;
}
?>