尽管临时目录存在,但无法在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

下一篇: Creating temp directory on server