Как имена файлов tmp в php генерируются?

Как записываются имена файлов tmp (загруженные) в php? Каков механизм этого? Могу ли я полагаться, что они всегда уникальны?

Проблема в том, что я хочу скопировать все загруженные файлы в один каталог const, и я не уверен, что имена tmp будут повторяться в истории моего сервера.

1 ответ

В конечном счете временные имена файлов, сгенерированные PHP, используют функцию mkstemp/mktemp, который гарантирует, что имя файла будет уникальным. Если имя файла, которое оно генерирует, уже существует, оно будет пытаться несколько раз генерировать несуществующее имя файла.

В Windows PHP использует GetTempFileName, что дает ту же гарантию уникальности.

В любом случае, если функции не могут вернуть уникальное имя файла, они возвращают значение ошибки, и PHP не будет возвращать вам имя файла.

licensed under cc by-sa 3.0 with attribution.