Временная папка

231
20 апреля 2018, 14:46

Настройки php.ini:

open_basedir="/var/www/html/site.ru"
upload_tmp_dir="/var/www/html/site.ru/tmp"

Потом создаю новый временный файл, а он создается в /tmp, куда соответственно доступа нет.

$tmp = tmpfile();
var_dump(stream_get_meta_data($tmp));
   array(9) {
     ...
     ["uri"]=>
     string(14) "/tmp/phpE7hLsa"
   }

Подскажите, может нужно еще что-нибудь настроить?

UPD: Web-сервер apache2. Папка на сервере существует, и даже файлы с форм нормально принимаются. А вот если создавать временный файл через tmpfile(), то он создается в /tmp

Answer 1

В общем, похоже, что функция tmpfile() использует системную временную папку, и значение upload_tmp_dir в php.ini никак не влияет на директорию созданного файла.

Решила проблему таким образом:

$tmpFileName = tempnam(ini_get('upload_tmp_dir'), 'php');
$tmpResource = fopen($tmpFileName, 'r+b');
// какие-то действия с файлом
fclose($tmpResource);
unlink($tmpFileName);
READ ALSO
Как правильно передать ссылку?

Как правильно передать ссылку?

В базе хранится поле link (string(2048))Во view добавляю link в тег а

224
Сохранение файла PHP

Сохранение файла PHP

Создается XML файл, который с сохраняется в папку filesПосле создания появляется ссылка на скачивание

248
PHP парсинг сайта сбербанка [требует правки]

PHP парсинг сайта сбербанка [требует правки]

Здравствуйте, нужно спарсить данный сайт http://wwwsberbank-ast

230
Как описать переменную в preg_replace_callback?

Как описать переменную в preg_replace_callback?

Изначально использовал preg_replace, но с апдейтом php пришлось перейти на preg_replace_callbackСоответственно возникла проблема, в preg_replace можно было без...

200