php - move_uploaded_file函数问题

时间:2011-11-08 13:13:22

标签: php file-upload permission-denied


我面临的问题是下面的move_uploaded_file()php函数是我的脚本。 其说的许可被否定了。该目录不可写。但我检查了权限,它的读写执行。不确定是什么问题,我如何确保许可是R-W-X。 ?

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
$target = "BharatTest/";
$photoName = basename( $_FILES['image']['name']);
$target = $target . basename( $_FILES['image']['name']) ;

ini_set('display_errors', 1);
echo '<pre>Debug: tmp file:', htmlspecialchars($_FILES['image']['tmp_name']), "</pre>\n";
echo '<pre>Debug: target directory: ', htmlspecialchars("BharatTest/"), "</pre>\n";
echo '<pre>Debug: real target: ', htmlspecialchars(realpath("BharatTest/")), "</pre>\n";
echo '<pre>Debug: source readable: ', is_readable($_FILES['image']['tmp_name']), "          
</pre>\n";
echo '<pre>Debug: target is_dir: ', is_dir("BharatTest/") ? 'yes':'no', "</pre>\n";
echo '<pre>Debug: target writable: ', is_writeable("BharatTest/") ? 'yes':'no', "    
</pre>\n";

if(move_uploaded_file($_FILES['image']['tmp_name'], $target))
{
   echo "YES";
}
else 
{
    echo "NO";
}
?> 

2 个答案:

答案 0 :(得分:0)

您需要确保网络服务器用户具有写入权限。根据设置的不同,这通常需要775甚至777的文件夹权限。

答案 1 :(得分:0)

仅仅因为目录是可写的(当您登录时),并不意味着它可以写入PHP / Apache /您拥有的任何Web服务器。根据您的服务器配置,PHP可能会使用完全不同的权限集运行。您可以查找Web服务器的权限,也可以将目录设置为777,然后从那里退避以确定目录的正确权限。