Здесь не так много кода. Я подозреваю, что $filename
не инициализирован должным образом. Так что в вашем if ( $filename === $existing )
это действительно говорит if(undefined === undefined)
, что всегда будет правдой.
Я не понимаю, почему файлы будут повреждены. Это может быть совсем другая проблема.
Кроме того, следите за своим SQL-заявлением. Это SQL-инъекция, ожидающая своего появления. Было бы намного лучше, если бы вы использовали подготовленные заявления или, по крайней мере, использовали mysql_escape_string
. Это, конечно, не рекомендуется в пользу подготовленных заявлений.
Лучшим рабочим процессом было бы сначала вставить в базу данных строку с метаданными файла, а затем переименовать файл, используя полученный вами первичный ключ. Он всегда будет уникальным.