尽管临时目录存在,但无法在PHP中创建临时文件
我正在制作一个允许用户上传图片的网站。 当我调用$ _FILE变量来将图像移动到另一个目录时,它什么都不做。 用print_r检查$ _FILE显示下一个信息:
(
[pic1] => Array
(
[name] => pic1
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
)
错误6似乎是这样的
UPLOAD_ERR_NO_TMP_DIR
Value: 6; Missing a temporary folder. Introduced in PHP 5.0.3.
但是我有一个很大的问题:我只能访问我放置文件的目录,我无法检查临时目录是否存在,或者检查php.ini(服务器来自我的客户端,而且他不能给我访问其他目录)
幸运的是客户正在检查这些参数并告诉我它们是怎么回事。 因此,临时目录(upload_tmp_dir)被设置为/ tmp / tmp目录实际存在,并具有所有权限:
drwxrwxrwt 34 root root 2832 2014-08-30 00:00 tmp
我一直在寻找它为什么会显示“Missing temporary folder”错误的原因,尽管它存在,但我找不到原因或解决方案。 我在这里留下一个用ini_get_all()的输出的pastebin
如果你能评论任何可能的解决方案,我将不胜感激。 谢谢。
您可以使用此功能更改哪个目录是“tmp”:http://php.net/manual/en/ini.core.php#ini.upload-tmp-dir
但显然,您必须在核心ini文件中完成此操作:http://www.reddit.com/r/PHP/comments/1c87xk/can_i_use_ini_set_to_set_the_value_of_upload_tmp/
让你的客户修复他们的服务器配置。
如果事情破裂,你无能为力,我无法想象他们会为了解决问题而与你抗争。 这不是一个技术问题......你已经解决了技术问题。
检查open_basedir
。 如果启用,PHP手册指出:
如果open_basedir处于打开状态,则系统默认目录必须允许上传成功。
您也可以指定一个自定义目录,并且应该检查它是否已经设置但不可写。 在同一页上还指出,如果指定的目录不可写,PHP将回退到系统默认的临时目录(/ tmp)。
链接地址: http://www.djcxy.com/p/72799.html上一篇: Can't create temporary file in PHP despite the temp directory exists