Я разрабатываю CMS в PHP в качестве учебного упражнения, но попал в brickwall под названием «ограничение open_basedir» – я пытаюсь загрузить небольшой файл JPG. Я попытался дать как можно больше информации, но дайте мне знать, если я что-нибудь забыл!
Я вижу, что он каждый раз попадал в папку c: / windows / temp /, поэтому он просто падает, пытаясь выполнить операцию move_uploaded_file .
После долгих исследований я знаю, что это такое и теоретически, как исправить это, прочитав несколько страниц в Интернете, таких как:
http://forum.parallels.com/showthread.php?258036-Plesk-Windows-open_basedir-restriction-in-effect
Мой код
$uiq = uniqid(); $image_folder = "/img/articles/original/"; $uploaded = false; if(isset($_POST['upload_image'])){ if($_FILES['userImage']['error'] == 0 ){ $up = move_uploaded_file($_FILES['userImage']['tmp_name'], $image_folder.$_FILES['userImage']['name']); if($up){ $uploaded = true; } } }
Мой PHPINFO
Мои результаты PhpInfo показывают, что корень моего пространства веб-хостинга находится в списке разрешенных папок:
open_basedir: F: \ PLESK \ WWW \ mydomain.com \ httpdocs \
Ошибка
PHP Warning: move_uploaded_file (): действие open_basedir. Файл (/img/articles/original/test.jpg) не находится в пределах допустимых путей: (F: \ PLESK \ WWW \ mydomain.com \ httpdocs) в F: \ PLESK \ WWW \ mydomain.com \ httpdocs \ sparklyphp \ cms \ modules \ articles \ edit \ photos \ index.php в строке 40
Больше ошибок
Если я изменю свой путь
$image_folder = "/img/articles/original/";
в
$image_folder = "img/articles/original/";
Я получаю дополнительные ошибки:
PHP Warning: move_uploaded_file(): open_basedir restriction in effect. File(C:\Windows\Temp\php393F.tmp) is not within the allowed path(s): (F:\PLESK\WWW\mydomain.com\httpdocs\) in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40 PHP Warning: move_uploaded_file(): open_basedir restriction in effect. File(C:\Windows\Temp\php393F.tmp) is not within the allowed path(s): (F:\PLESK\WWW\mydomain.com\httpdocs\) in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40 PHP Warning: move_uploaded_file(C:\Windows\Temp\php393F.tmp): failed to open stream: Operation not permitted in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40 PHP Warning: move_uploaded_file(): Unable to move 'C:\Windows\Temp\php393F.tmp' to 'img/articles/original/test.jpg' in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40
** Хостинг-среда ** Хостинг веб-сайтов для Windows 2008 R2 с Plesk 11.5 (последняя версия / обновление) с PHP 5.4.16 в режиме FastCGI. У меня есть полный доступ администратора ко всему серверу.
Самое неприятное здесь, что файл загружается во временную папку, я просто не могу получить его оттуда!
Любая помощь приветствуется!
боб