Ответ 1
Кажется, stream_get_meta_data() также работает:
$tmpHandle = tmpfile();
$metaDatas = stream_get_meta_data($tmpHandle);
$tmpFilename = $metaDatas['uri'];
fclose($tmpHandle);
Недоброкачественная...
Есть ли способ получить путь к файлу, созданному с помощью tmpfile()
?
Или мне нужно сделать это самостоятельно с помощью tempnam()
?
Кажется, stream_get_meta_data() также работает:
$tmpHandle = tmpfile();
$metaDatas = stream_get_meta_data($tmpHandle);
$tmpFilename = $metaDatas['uri'];
fclose($tmpHandle);
sys_get_temp_dir()
Вернет текущий каталог конфигурации для хранения файлов tmp.
Что касается сгенерированного имени файла, вы должны использовать tempnam()
для использования пути к файлу с именем, определенным вами/пользователем.
Подобно этому
$path = array_search('uri', @array_flip(stream_get_meta_data($GLOBALS[mt_rand()]=tmpfile())));
file_put_contents($path, 'hello');