Изменить где php загружает файлы в - PullRequest
0 голосов
/ 16 января 2012

Я пытаюсь создать модуль загрузки на своем веб-сайте, но получаю следующую ошибку:

Предупреждение PHP: Неизвестно: действует ограничение open_basedir. Файл (C: \ Windows \ TEMP) находится за пределами допустимого пути: (E: \ Domains \ medisearch.com.br) в поле Неизвестно в строке 0 Предупреждение PHP: Ошибка загрузки файла - невозможно создать временный файл в Unknown в строке 0

Ответы [ 4 ]

3 голосов
/ 16 января 2012

Есть настройка php.ini, upload_tmp_dir, которая управляет этим каталогом. Вы должны изменить его на уровне php.ini. Выполнение этого через ini_set() в вашем скрипте не будет работать - загрузка будет прервана задолго до того, как ваш скрипт начнет выполняться.

1 голос
/ 16 января 2012

Вы не можете сделать это на своем PHP-скрипте, но если у вас есть доступ к php.ini, вы можете изменить upload_tmp_dir оттуда.Вы не можете изменить это в php, потому что это директива PHP_INI_SYSTEM

0 голосов
/ 16 января 2012

загрузка файлов - опасная вещь.Вот почему в php есть ограничения для ограничения опасности.Одним из таких ограничений является директива open_basedir: она ограничивает, где php может читать файлы (например, включать или требовать) и записывать файлы (например, загружать).

Хорошей идеей является сохранение загруженных файлов вместо, которое находится за пределами обычного веб-пространства, но затем вы должны добавить каталог загрузки в open_basedir, например так:

См. руководство по адресу

http://www.php.net/manual/en/ini.core.php#ini.open-basedir

если вы понимаете это правильно, все еще есть около 100 вещей, которые могут пойти не так при загрузке файлов, вещи, которые открывают уязвимость в вашем приложении.Прочитайте много о безопасности + php, прежде чем пытаться сделать это!

0 голосов
/ 16 января 2012

Откройте php.ini и найдите «upload_tmp_dir»

Измените это на новое местоположение

...