Просмотр поста

.
kantry
Hey guys! Finally I'm gonna change status!?
# 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 символов.