file — php загружает $ _FILES [FileName] [& quot; tmp_name & quot;] уникальность

Я не могу найти конкретную информацию относительно уникальности $_FILES["FileName"]["tmp_name"],

От: http://php.net/manual/en/reserved.variables.files.php
Я вижу, что 6 шестнадцатеричных символов делают имя файла уникальным.
например /tmp/php/php6hst32

Из локального тестирования (XAMPP | WIN 7) Я вижу только 4 шестнадцатеричных символа
например \tmp\phpCC07.tmp

Это предполагает минимальную уникальность 1 в 65536 что не кажется мне таким уникальным.

Где этот набор в PHP? (это не в php.ini). Это жестко запрограммировано или его можно настроить?

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

1

Решение

Файлы гарантированно будут уникальными. PHP использует GetTempFileName() на Windows и mkstemp() или же mktemp() в линуксе

GetTempFileName() производит имена файлов в формате <префикс>XXXX. (Это то, что вы видите с XAMPP)

mkstemp() а также mktemp() производить имена файлов в формате <префикс>XXXXXX. (Это то, что было в документах)

Они не настраиваются, они устанавливаются стандартной C-библиотекой системы. Система гарантирует, что генерируемые имена файлов являются уникальными. Если система не может создать уникальное имя файла, вызов функции возвращает статус ошибки в PHP, что, в свою очередь, вызывает E_WARNING: «Ошибка загрузки файла — невозможно создать временный файл».

Рекомендации:

2

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

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

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