ユーザーはフォームを介して画像(、、)をpng
アップロードします。hash_fileを使用してdbをチェックし、イメージがすでにアップロードされているかどうかを確認していますが、一意ではないことに気づきました。jpg
gif
これはバグですか、それともファイルの一意のIDを生成するために他の何かを使用する必要がありますか?
回避策はmd5(filesize($file) . $hash)
?
ログからの更新 ...最初のセットはmd5_fileを使用し、2番目はhash_fileからsha256を使用しています...
ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='d41d8cd98f00b204e9800998ecf8427e' ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='d41d8cd98f00b204e9800998ecf8427e' ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='e3b0c44298fc1c 20130117T231016:booru.pixymedia.us/utilities/batchExistingUpload.php ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' ハッシュ:SELECT SiteID FROM tbl_image_hashes WHERE SiteID = 0 AND Hash ='e3b0c44298fc1c
そして、SQLは正しくありません...私はこの関数で3,000個のファイルを正常にアップロードしました...
これはハッシュ生成コードです:
$fileHash = hash_file("sha256",$FILE["tmp_name"]);
$FILEは基本的に$_FILEであり、関数パラメーターの名前はこれだけです。