gpt4 book ai didi

php - 使用 SSH 和 CHMOD 更改文件权限以允许文件上传

转载 作者:可可西里 更新时间:2023-11-01 07:45:29 24 4
gpt4 key购买 nike

    Warning: move_uploaded_file(activities.png): 
failed to open stream:
Permission denied in /var/www/vhosts/default/htdocs/backoffice/db/changelogo.php on line 17
Warning: move_uploaded_file():
Unable to move '/tmp/phpTNQXEi' to 'activities.png' in /var/www/vhosts/default/htdocs/backoffice/db/changelogo.php on line 17

因此,由于此 .php 脚本的文件权限不正确,我的权限被拒绝。

如何使用 SSH(或 SFTP)允许文件上传而不获得拒绝权限以允许图像上传。

这是供引用的 php 脚本:

    <?php
include 'realtydevkit.php';
session_start();

umask(0077);

$name = $_FILES['yourlogo']['name'];
$tmpname = $_FILES['yourlogo']['tmp_name'];
$error = $_FILES['yourlogo']['error'];

ini_set("display_errors", 1);

echo $error;

if ($name) {
$directory = $name;
$userid = $_SESSION['userid'];
$type = "logo";

$file = move_uploaded_file($tmpname, $directory);

if ($file) {
mysql_query("INSERT INTO usercontent
(`userid`, `type`, `url`) VALUES
('$userid', '$type', '$directory')");
echo 'Uploaded';
echo "<img src='".$directory."'/>";
} else {
echo 'There was an error moving the file.';
}

chmod($directory, 0644);
}


?>

最佳答案

这里真正的问题是文件没有以适当的权限写入。我怀疑您没有提前在应用程序中设置 umask:

我会谨慎使用此设置,因为通过在任何给定的上传文件上设置全局读/写很容易为您自己创建安全问题。采取通常的安全预防措施,并可能将读/写设置为仅网络用户而不是公共(public)目录。甚至可以设置一个按需运行或按分钟运行的作业,为您移动这些以减少安全威胁。

根据文档中的评论,一个快速的操作方法:

<?php
// files will create as -rw-------
umask(0077);

// create a file, eg fopen()

// give access: -rw-r--r--
chmod('/path/to/file', 0644);
?>

文档中的更多信息:

http://php.net/manual/en/function.umask.php

关于php - 使用 SSH 和 CHMOD 更改文件权限以允许文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com