Как динамически изменить upload_tmp_dir через версию PHP модуля apache динамически, то есть перед записью загружаемого файла на диск - PullRequest
1 голос
/ 29 августа 2009

Я хочу повернуть место, где записаны временные файлы, однако, насколько я понимаю, сценарий PHP не будет выполняться до тех пор, пока полная запись не будет завершена. К этому времени файл уже записан во временную папку по умолчанию из файла конфигурации, который загружается в то время, когда запускается apache и загружается модуль php. Есть идеи?

1 Ответ

0 голосов
/ 29 августа 2009

Как вы упомянули, невозможно изменить его динамически, поскольку загрузка завершена до того, как страница будет выполнена - то есть никакие причудливые ini_set вызовы не могут быть сделаны.

Возможный обходной путь:

Вы можете установить временное местоположение загрузки в вашем файле php.ini, чтобы оно указывало на символическую ссылку (/tmp/myuploads), которая, в свою очередь, указывает на одно из выбранных вами мест загрузки (/mnt/uploadstore_1/).

Затем можно получить файл PHP, который обрабатывает загрузку, при каждом запуске меняя местоположение символической ссылки на новое местоположение (в основном эквивалент 'rm /tmp/myuploads && ln -s /mnt/uploadstore_2/ /tmp/myuploads').

Это должно гарантировать, что последующая загрузка завершится в выбранном вами следующем расположении.

...