Использует ли PHP $ _FILES повторное использование имен файлов на сервере? - PullRequest
2 голосов
/ 21 июля 2011

Я создаю компонент загрузки изображений для сайта социальной сети. Я загружаю несколько файлов, используя imgfile[] в качестве <input> name, и эта часть работает нормально.

$upload_form.= "<ul class='imgfile_ul' id='$imgfile_ul_id' style='padding:0px'>";
$upload_form.=      "<li class='' id='$imgfile_li_id' style='border:0px'><label class='msgs_in_black'>Filename:</label><input type='file' name='imgfile[]' class='imgfile_cls' id='$imgfile_id'/></li>";
$upload_form.= "</ul>";

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

for($i=0;$i<$files_cnt;$i++){
        $temp_name = $_FILES['imgfile']['tmp_name'][$i];
        $file_name = $_FILES['imgfile']['name'][$i];

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

Ответы [ 2 ]

4 голосов
/ 21 июля 2011

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

0 голосов
/ 22 июля 2011

переменная $_FILES является локальной для выполняемого в данный момент сценария (запущенного по запросу HTTP post), поэтому пользователь не может получить загруженные файлы других пользователей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...