# Chifty (10.09.2018 / 10:23)Зачем тебе еще таблица? Добавь поле для хеша, и достаточно, я те вроде выше понятный пример привел))
ну так накидайте набросок кода для 7го джона, пожалуйста
Для john 7 (+/-)
// вычисляем хеш файла
$file_hash = md5_file($_FILES["fail"]["tmp_name"]);
if ((move_uploaded_file($_FILES["fail"]["tmp_name"], "$load_cat/$fname")) == true) {
echo '<div class="phdr"><b>' . _t('Upload File') . ': ' . htmlspecialchars($res['rus_name']) . '</b></div>';
@chmod("$fname", 0755);
@chmod("$load_cat/$fname", 0755);
echo '<div class="gmenu">' . _t('File attached');
if ($set_down['mod'] && ($systemUser->rights < 6 && $systemUser->rights != 4)) {
echo _t('If you pass moderation, it will be added to the Downloads');
$type = 3;
} else {
$type = 2;
}
echo '</div>';
$stmt = $db->prepare("
INSERT INTO `download__files`
(`refid`, `dir`, `time`, `name`, `text`, `rus_name`, `type`, `user_id`, `about`, `desc`)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, '')
");
// add file_hash new column
// ALTER TABLE `download__files`
// ADD COLUMN `file_hash` VARCHAR(32) NULL AFTER `name`;
$res_double = $db->query(
'SELECT `name`, `dir` FROM `download__files` WHERE `file_hash`="' . $file_hash . '"'
)->fetchAll();
if (!empty($res_double)) {
// удаляем загруженый дубликат
unlink($load_cat . '/' . $fname);
// здесь собираем нужный массив для экзекуции из массива $double
// меняем путь на существующий файл, что надо изменяем и т д.
foreach($res_double as $double);
$load_cat = $double['dir'];
$fname = $double['name'];
// при удалении файла тоже надо предусмотреть ньюансы
}Длинна поля для md5 32 символа, sha1 40 символов.