上传文件权限

时间:2014-04-22 15:08:11

标签: php

我有这样的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

这里发生了什么?

2 个答案:

答案 0 :(得分:1)

您应该验证文件权限文件所有者。

更改文件权限:

chmod -R 775 /var/www/html/jdih

并将所有者设置为运行Apache服务器的用户。

chown www-data:www-data /var/www/html/jdih

注意:所有者取决于您的发布,在Ubuntu www-data上,可能是httpdhttp或其他内容。

答案 1 :(得分:0)

转到终端,然后键入:

chmod -R 775 /your/upload/folder/path

然后你设置了在这个目录中写入的权限