Поскольку пока никто официально не предлагал этого, я бы посоветовал просто сохранить имя файла в качестве уникального идентификатора базы данных, не более того, и сохранить расширение в базе данных (если только вы не заставляете все изображения иметь формат .jpg или что-то в этом роде). тогда вам и не нужно).
- Это всегда будет безопасное имя файла (целое число)
- Он всегда будет уникальным
- Нет необходимости хранить имя файла в БД или беспокоиться о его очистке.
- Это будет как можно меньше.
Почему бы мне не использовать имя пользователя / идентификатор пользователя, как предлагали другие:
- Нет никакой пользы и нет причин выставлять идентификатор пользователя в имени файла, если вам это не нужно.
- Нет необходимости очищать его для разрешенных символов, что может даже привести к тому, что у нескольких пользователей будет одно и то же имя «безопасный файл».
- Имена пользователей могут меняться, поэтому это не всегда имеет смысл, и вам не нужно переименовывать файлы, если вы хотите, чтобы они совпадали.
Почему бы мне не использовать исходное имя файла в любой форме:
- Там нет никакой пользы.
- Вы должны очистить его для разрешенных символов.
- Будут дубликаты.
Если вы не заинтересованы в именах файлов тщеславия, я не могу думать ни о какой причине, чтобы просто не использовать идентификатор автоинкремента. Если ваши идентификаторы БД уникальны, ваши имена файлов тоже будут.
Если в дальнейшем вы захотите «красивые» имена файлов, вы можете использовать .htaccess
, чтобы переписать запросы и / или вывести ваши изображения с помощью php-скрипта, который также имеет преимущество проверки разрешений и еще много чего, если вы нужно это.