LINUX.ORG.RU

upload_tmp_dir не срабатывает


0

1

apache2 debian php5.2
в настройках хоста указано:
DocumentRoot /home/user/site.com
php_admin_value open_basedir «/home/user/:.»
php_admin_value upload_tmp_dir «/home/user/tmp»

в phpinfo() видно что upload_tmp_dir такой же как и в настройке хоста. есть говноскрипт (писал не я), который загружает аватар пользователя, примерно следующего содержания

//говнокод
$avat_size=$_FILES['file']['size'];
$avat_name=$_FILES['file']['name'];
$size = GetImageSize($_FILES['file']['tmp_name']);
//другой говнокод
самое интересное что временный файл всё-равно заливается в /tmp

Warning: getimagesize() [function.getimagesize]: open_basedir restriction in effect. File(/tmp/phpHq9AVa) is not within the allowed path(s): (/home/user/:.)

как так? кто сталкивался? (на сервере ещё куча сайтов, у других нет проблем с загрузкой файлов)

upd: проблема была в том что владельцем /home/user/tmp был root.



Последнее исправление: lolshchto (всего исправлений: 2)

Он в любом случае туда будет заливаться, испльзуйте move_uploaded_file() для того что бы перенести его в нужное место.

tyler19
()
Ответ на: комментарий от tyler19

в любом случае куда будет заливаться? в /tmp ? ошибаетесь, туда он льёт только в том случае если не выставлена директива php_admin_value upload_tmp_dir. и move_uploaded_file() тут вообще не при чем. он точно также не сможет достать файл из /tmp если туда закрыт доступ через open_basedir.

lolshchto
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.