PHP уникальный идентификатор для файла

Если я хочу связать контент в базе данных с файлом, что я могу использовать для уникальной ссылки на файл в базе данных, отличный от файла или имени даты создания / изменения, которое может измениться. Есть ли что-то еще, что является уникальным для файла, которое не изменится и может быть использовано для ссылки на файл в базе данных?

Я хочу сослаться на данные содержимого базы данных, которые соответствуют медиа-файлу m3u8, поэтому при воспроизведении файла содержимое базы данных извлекается и отображается. Я хочу иметь возможность изменить имя файла m3u8 и изменить его содержимое, поэтому мне нужно сослаться на файл, используя что-то отличное от имени файла или mtime.

1

Решение

Я, вероятно, получу отрицательный голос, но я просто должен поделиться.

Я обычно исправляю это time()потому что почти нулевая возможность иметь дублирующую запись time() (если каким-то чудом обработка двух файлов не происходит в один и тот же отрезок времени).
Я не останавливаюсь на достигнутом, иногда я добавляю имя пользователя в строку вместе с другим случайным кодом, который делает его практически защищенным от дубликатов (вероятность близка к нулю).

Допустим, имя файла super-awersome-pdf-file.pdf , я добавить time() (который является строкой) перед ним, затем некоторые другие вещи. Это имя файла само становится уникальным идентификатором. Кроме того, я также храню информацию в таблице базы данных, чтобы дать ей еще один уникальный идентификатор. Поэтому у меня есть две вещи для работы.

Сохраняя имя файла менее 60-70 символов, вы можете сделать несколько довольно уникальных имен файлов таким образом. Затем вы можете добавить информацию об этом в базу данных.

Pro:
Почти никогда вы не получите повторяющееся имя файла

Против: однако это может создать дубликаты файлов, поскольку система увидит, что два файла имеют разные имена файлов.

Таким образом, нет повторяющегося имени файла, но, вероятно, если пользователь не заботится о некоторых дубликатах файлов.

Надеюсь это поможет.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]