我正在运行一个带有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在本地测试时,一切都很好。
答案 0 :(得分:1)
您是否已检查上传目录的所有者和群组?如果您使用 chown 命令将Apache更改组下的服务器运行到您的apache组(通常是 www-data 或 http )。