我制作了一个允许用户上传图片的网站。 当我调用$ _FILE变量以便将图像移动到另一个目录时,它什么都不做。使用print_r检查$ _FILE将显示下一个信息:
(
[pic1] => Array
(
[name] => pic1
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
)
错误6似乎是this
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
我一直在搜索为什么它会显示"错过临时文件夹的错误"尽管它存在,但我无法找到理由或解决方案。我离开here a pastebin with the output of ini_get_all()
如果您可以评论任何可能的解决方案,我将不胜感激。感谢。
答案 0 :(得分:0)
您可以更改哪个目录" 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/
答案 1 :(得分:0)
让您的客户修复其服务器的配置。
如果他们的东西坏了,你什么也做不了,我无法想象他们会在必须修理它时与你作斗争。这不是技术问题......您已经解决了技术问题。
答案 2 :(得分:0)
检查open_basedir
。如果已启用,PHP manual状态:
如果打开open_basedir,则系统默认目录必须为 允许上传成功。
此外,您可以指定自定义目录,并且应检查它是否已设置但不可写。同一页面上还说明,如果指定的目录不可写,PHP将回退到系统默认临时目录(/ tmp)。
答案 3 :(得分:0)
不确定没有人指出它。但据我所知。没有人在root权限下运行php,文件夹/ tmp具有root:root所有权。我只能假设,如果您使用file_put_contents
或fopen('/tmp/some_new_file')...
,则应该会在某些权限被拒绝或类似的情况下产生。因此,您应该使用php用户的可访问文件夹永久更新php.INI,以避免再次出现错误