Как сделать в PHP уникальное имя файла при загрузке исходя из его содержимого MD5?
Есть такой код, правильно ли это? Сервис загрузки изображенийй. Хочу создавать файлам уникальные имена, но если такой файл уже есть, что бы не сохранялся дубликат. Пусть да, не 100% точность (врятли будет более 10 000 фоток).
Не могу разобраться как получить MD5 из содержимого файла, который пользователь загружает..
if (isset($_FILES['file'])) {
$upload = diverse_array($_FILES["file"]);
$i=0;
foreach($upload as $key=>$value) {
if ($i <= $GLOBALS["MaxUploads"]) {
$uniqfilename = md5_file($value['tmp_name']);
$temp = UploadImg($value, $uniqfilename, $BigSize, $SmallSize);
Максим Тимофеев: Наверное лучше использовать действительно ваш вариант, потому что действительно md5 может совпасть даже у разных файлов с разным весом
xpytep: А в базе писать время+пользователя+имя файла? Можно и в кэше хранить последние файлы и смотреть там. По моему это рационально. Или как минимум не весь файл читать, а построчно хеш из n строк.