我正在尝试在我的网站上制作上传模块,但出现以下错误:
PHP 警告:未知:open_basedir 限制生效。文件(C:\Windows\TEMP)不在允许的路径内:(E:\Domains\medisearch.com.br)在第 0 行的未知 PHP 警告:文件上传错误 - 无法在第 0 行未知
我正在尝试在我的网站上制作上传模块,但出现以下错误:
PHP 警告:未知:open_basedir 限制生效。文件(C:\Windows\TEMP)不在允许的路径内:(E:\Domains\medisearch.com.br)在第 0 行的未知 PHP 警告:文件上传错误 - 无法在第 0 行未知
有一个 php.ini 设置,upload_tmp_dir
它控制该目录。您必须在 php.ini 级别更改它。通过ini_set()
在您的脚本中执行此操作将不起作用 - 上传将在您的脚本开始执行之前很久就中止。
您不能在您的 php 脚本上执行此操作,但如果您可以访问 php.ini,那么您可以 从那里更改upload_tmp_dir 。您不能在 php 中更改它,因为它是 PHP_INI_SYSTEM 指令
打开 php.ini 并搜索“upload_tmp_dir”
将此更改为新位置
上传文件是一件危险的事情。这就是为什么 php 有限制来控制危险的原因。其中一个限制是“open_basedir”指令:它限制了 php 可以读取文件(例如包含或要求)和写入文件(例如上传)的位置。
将上传的文件保存在正常网络空间之外的地方是个好主意,但是您必须将上传目录添加到 open_basedir,如下所示:
参见手册
http://www.php.net/manual/en/ini.core.php#ini.open-basedir
如果你做对了,上传文件时仍有大约 100 件事情可能出错,这些事情会在你的应用程序中打开一个漏洞。在尝试执行此操作之前,请阅读有关安全性 + php 的大量信息!