Php 上载文件权限
我有如下PHP代码:Php 上载文件权限,php,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']['t
<?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.';
}
}
}
?>
这里发生了什么事?转到终端,然后键入:
chmod -R 775 /your/upload/folder/path
然后设置写入此目录的权限您应该验证文件权限和文件所有者 要更改文件权限,请执行以下操作:
chmod -R 775 /var/www/html/jdih
并将所有者设置为运行apache服务器的用户
chown www-data:www-data /var/www/html/jdih
注意:所有者取决于您的发行版,在Ubuntu上它是
www-data
,可能是httpd
或http
或其他内容。看起来像是文件夹权限问题。您可能需要chmod
具有正确写入权限的文件夹。似乎您没有执行chowm
和chmod()
的权限查看相关问题---------------------------------------------------------------------------------->仍显示错误。。。警告:chown():第23行/var/www/html/jdih/upload.php中不允许操作警告:chmod():第24行/var/www/html/jdih/upload.php中不允许操作警告:移动上传的文件(/var/www/html/jdih/upload/06 naiveBayes example.pdf):无法打开流:第25行的/var/www/html/jdih/upload.php中的权限被拒绝警告:move_upload_file():无法将“/tmp/phpwxDnR9”移动到第25行的/var/www/html/jdih/upload/06 naiveBayes example.pdf”中的“/var/www/html/jdih/upload.php”,您还可以更改文件夹的所有者,chown-R groupname/pathFolder使用chmod 777上载路径时,成功上载文件,但chmod 755无法上载文件。。。什么是最好的解决方案?请仔细阅读,我写了chmod775
。您必须验证上传路径的所有者是否与运行apache的用户相同。使用ls-l
查看文件的所有者。并在apache配置文件中搜索运行apache的用户。
chown www-data:www-data /var/www/html/jdih