PHP文件在777目录中不可写

时间:2014-09-13 22:25:13

标签: php codeigniter upload

我正在运行一个带有CodeIgniter框架的网站,我有多个页面,用户可以从中上传文件(个人资料图片等)。

以前我最近删除并替换了服务器上的uploads文件夹。我使用FileZilla将权限设置为777,并确认之后实际设置了权限。我仍然收到CI错误上传目标文件夹似乎不可写。

此错误来自指定行的system / core / Common.php(CI框架的一部分)中的以下函数:

if ( ! function_exists('is_really_writable'))
{
    function is_really_writable($file)
    {
        // If we're on a Unix server with safe_mode off we call is_writable
        if (DIRECTORY_SEPARATOR == '/' AND @ini_get("safe_mode") == FALSE)
        {
            return is_writable($file);
        }

        // For windows servers and safe_mode "on" installations we'll actually
        // write a file then read it.  Bah...
        if (is_dir($file))
        {
            $file = rtrim($file, '/').'/'.md5(mt_rand(1,100).mt_rand(1,100));

            if (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE)
            {
                return FALSE; // RETURNS FALSE HERE <---
            }

            fclose($fp);
            @chmod($file, DIR_WRITE_MODE);
            @unlink($file);
            return TRUE;
        }
        elseif ( ! is_file($file) OR ($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE)
        {
            return FALSE;
        }

        fclose($fp);
        return TRUE;
    }
}

我不知道是什么原因引起的。文件夹路径和权限与之前完全相同(实际上权限曾经更严格),我没有更改上传表单的脚本。当我使用Wamp在本地测试时,一切都很好。

1 个答案:

答案 0 :(得分:1)

您是否已检查上传目录的所有者和群组?如果您使用 chown 命令将Apache更改组下的服务器运行到您的apache组(通常是 www-data http )。