2011-08-16 74 views
0

我正在写一个PHP脚本,用于在服务器上进行文件上传。并且代码如下..move_uploaded_file()不起作用

$target_path = "uploaded_images/"; 
$target_path = $target_path . basename($_FILES['image']['name']); 
if(move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) { 

    echo "The file ". basename($_FILES['image']['name']). 
     " has been uploaded"; 
    } else{ 
    echo "There was an error uploading the file, please try again!"; 
} 

但功能move_uploaded_file()以不工作,它提供了以下错误..

Warning: move_uploaded_file(uploaded_images/Mordent.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied 


Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpOWVz7o' to 'uploaded_images/Mordent.jpg' 

我已经检查的所有permisions的文件夹,甚至php.ini中的安全模式已关闭。

请帮助我,我需要这个紧急完成。

回答

3

此处不要使用相对路径名(uploaded_images/Mordent.jpg)。 PHP的工作目录(它将用于将相对路径转变为绝对路径)并不总是很明显。

如果你想将图像移动到该目录是在相同的目录中的脚本,定义$target_path像:

$target_path = __DIR__ . '/uploaded_images/'; 

__DIR__部分给你的绝对路径的目录你当前的脚本是在那里,然后你追加“相对”的部分。

+0

此答案以前使用'dirname(__ FILE __)'。自PHP 5.3以来,较短的'__DIR__'可用,并且完全相同。 –

1

你的代码是完全没有问题......只是改变你在哪里移动上传的文件

0777一样读的所有权限的目录的权限和写 你可以做手工或通过PHP更改