我正在php中编写一个脚本,用于在服务器上上传文件。代码如下:
$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'
我已经检查了文件夹的所有权限,甚至关闭了php.ini中的安全模式。
答案 0 :(得分:3)
此处不要使用相对路径名(uploaded_images/Mordent.jpg
)。 PHP的工作目录(用于将相对路径转换为绝对路径)并不总是很明显。
如果您尝试将图片移动到的目录与脚本位于同一目录中,请定义$target_path
,如:
$target_path = __DIR__ . '/uploaded_images/';
__DIR__
部分为您提供当前脚本所在目录的绝对路径,然后将“相对”部分附加到该目录。
答案 1 :(得分:1)
您的代码非常好......只需更改您上传文件的目录的权限
即可与0777类似,用于读写的所有权限 你可以手动完成或通过php
更改它