PHP图片保存目录权限
PHP上传图片,报错最多的就是 move_uploaded_file 那句 Permission denied。代码本身没毛病,纯粹是目录不让写。
Windows 下用小皮面板基本不用管,站点目录默认能写,只要确认 uploads 文件夹真的建了。Linux 才是常见问题,PHP 跑在 www 用户下,目录是 root 建的,当然写不进去。
稳妥的写法是先判断再创建,顺手给上权限:
$dir = __DIR__ . '/uploads/'; // 保存目录
if (!is_dir($dir)) {
mkdir($dir, 0777, true); // 不存在就递归创建
}
$file = $dir . time() . '.jpg'; // 时间戳当文件名,避免重名
if (!move_uploaded_file($_FILES['img']['tmp_name'], $file)) {
exit('保存失败,检查目录权限');
}
echo 'OK';还是失败就上命令补一下:
chown -R www:www uploads # 目录归 PHP 运行用户
chmod -R 755 uploads # 给写权限小皮面板更省事,文件管理里右键改权限,勾上写入就行。另外父目录没权限也白搭,子目录都建不出来,别只盯着最后一层看。
说点什么 0