我有这样的PHP代码:
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
$error = array();
if (isset($_POST['submit'])) {
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'upload';
if (!empty($_FILES)) {
$tmp = $_FILES['file']['tmp_name'];
$file = $dir . DIRECTORY_SEPARATOR . $_FILES['file']['name'];
if (is_uploaded_file($tmp)) {
if (!chown($dir, 'nobody')) {
$error[] = 'Owner tidak bisa di replace!';
}
if (!chmod($dir, intval(755, 8))) {
$error[] = 'Direktori "' . $dir . '" tidak bisa diberi akses!';
}
if (!move_uploaded_file($tmp, $file)) {
$error[] = 'Gagal memindahkan berkas "' . $file . '"';
}
if (file_exists($file)) {
$error[] = 'Berhasil di unggah! ' . $file;
}
} else {
$error[] = 'Berkas tidak bisa di unggah.';
}
}
}
?>
运行此代码时,会显示以下消息:
Warning: chown(): Operation not permitted in /var/www/html/jdih/upload.php on line 23
Warning: chmod(): Operation not permitted in /var/www/html/jdih/upload.php on line 24
Warning: move_uploaded_file(/var/www/html/jdih/upload/06-naiveBayes-example.pdf): failed to open stream: Permission denied in /var/www/html/jdih/upload.php on line 25
Warning: move_uploaded_file(): Unable to move '/tmp/phpMHL5CQ' to '/var/www/html/jdih/upload/06-naiveBayes-example.pdf' in /var/www/html/jdih/upload.php on line 25
这里发生了什么?
答案 0 :(得分:1)
您应该验证文件权限和文件所有者。
更改文件权限:
chmod -R 775 /var/www/html/jdih
并将所有者设置为运行Apache服务器的用户。
chown www-data:www-data /var/www/html/jdih
注意:所有者取决于您的发布,在Ubuntu www-data
上,可能是httpd
或http
或其他内容。
答案 1 :(得分:0)
转到终端,然后键入:
chmod -R 775 /your/upload/folder/path
然后你设置了在这个目录中写入的权限