Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件上载-权限被拒绝(PHP),无法更改权限_Php - Fatal编程技术网

文件上载-权限被拒绝(PHP),无法更改权限

文件上载-权限被拒绝(PHP),无法更改权限,php,Php,我已经通过FileZilla将我的网站上传到我的大学服务器。当我试图上传图像时,它给了我错误。(在localhost中进行测试时,工作正常) 这是代码 if (!array_key_exists('image', $add_image_errors)) { $new_name= (string) sha1($file['name'] . uniqid('',true)); $new_name .= ((substr($ext, 0, 1) != '.') ? ".{$ext}"

我已经通过FileZilla将我的网站上传到我的大学服务器。当我试图上传图像时,它给了我错误。(在localhost中进行测试时,工作正常)

这是代码

if (!array_key_exists('image', $add_image_errors)) {
    $new_name= (string) sha1($file['name'] . uniqid('',true));
    $new_name .= ((substr($ext, 0, 1) != '.') ? ".{$ext}" : $ext);
    $dest = "images/$new_name";
    if (move_uploaded_file($file['tmp_name'], $dest)) {
        $_SESSION['image']['new_name'] = $new_name;
        $_SESSION['image']['file_name'] = $file['name'];
        echo '<h4>The file has been uploaded!</h4>';
            } else {
                trigger_error('The file could not be moved.');
                unlink ($file['tmp_name']);
                }
            } // End of array_key_exists( ) IF.
关于如何更改权限或编码中的任何备选方案,以便可以上载图像并将其写入图像文件夹,您有何想法

我是PHP新手


非常感谢

您的系统管理员似乎对脚本修改文件系统的方式施加了限制。特别是在大学环境中,严格的安全控制是必要的,以防止由学生或教员编写的糟糕或恶意代码导致的内部和外部违规

更具体地说,
chmod():权限被拒绝
表示您的系统管理员故意禁止更改PHP中的文件权限


简而言之,您受到限制是为了防止在大学服务器上发生不正常的事情。

在共享主机中,有时您没有从默认临时目录进行读写的权限,请尝试将临时目录更改为项目的某个文件夹,如下所示:

ini_set('upload-tmp-dir', '/real/path/of/your/directory');

您可能没有更改文件权限的权限。此外,当服务器是运行php的Windows服务器时,我也看到过这种错误。大学的服务器可能不允许您或任何人执行任何特殊任务。联系系统管理员。看起来它超出了你的控制范围。这在大学系统中并不奇怪。想象一下,如果他们让任何新手上传他们想要的任何东西,他们的系统会被摧毁。我也这么想@我认为这是您服务器的tmp目录中的权限问题。在某些共享主机中,我们没有使用tmp_目录的权限。。。在根项目文件夹中创建一个假的tmp目录,并尝试使用
ini\u set('upload-tmp-dir',\uu-dir.'/tmp')更改tmp目录不要忘记将
chmod 777
应用于新的tmp目录。
    $dest = "images/$new_name";
    chmod ("images",0777);
ini_set('upload-tmp-dir', '/real/path/of/your/directory');