Possible Duplicate:
What is a good way to check if an image is unique using PHP?
A user uploads an image (png, jpg, gif) via a form. I’m am using hash_file to check against the db to see if the image already has been uploaded but I am now noticing that it is not unique.
Is this a bug or should I be using something else to generate a unique ID for the files?
I guess the workaround would be md5(filesize($file) . $hash)?
UPDATE
From the logs… first set is using md5_file, second from hash_file with sha256…
HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'd41d8cd98f00b204e9800998ecf8427e' HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'd41d8cd98f00b204e9800998ecf8427e' HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'e3b0c44298fc1c 20130117T231016: booru.pixymedia.us/utilities/batchExistingUpload.php HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' HASH: SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash = 'e3b0c44298fc1c
And no the SQL is right… I’ve uploaded 3,000 files successfully with this function…
This is the hash generating code:
$fileHash = hash_file("sha256",$FILE["tmp_name"]);
$FILE is basically $_FILE, it’s just what the function parameter is named as
d41d...427eande3b0...b855are the MD5 and SHA256 sums of the empty string (e.g,md5("")andsha256("")). The fact that you’ve got these in your database indicates that there is something wrong with your code — you may be hashing the wrong filename at some point.