文件上传 - 权限被拒绝(PHP)并且无法更改权限

时间:2014-05-07 18:18:15

标签: php

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

move_uploaded_file(images/a1d91430cf89bfcaa1a5fa953ebab2dc000e0eed.jpg): failed to open stream: Permission denied
move_uploaded_file(): Unable to move '/tmp/phpF1v2O3' to 'images/a1d91430cf89bfcaa1a5fa953ebab2dc000e0eed.jpg'

这是编码

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.

我查看了多少个论坛,并了解这是文件权限的问题。因此我从FileZilla(755到777)更改了图像文件夹的权限,但它不允许我因某种原因进行更改。

然后我尝试添加chmod(&#34; images&#34;,0777),但我给了我同样的错误 - chmod():Permission denied

这是编码

    $dest = "images/$new_name";
    chmod ("images",0777);

有关如何更改权限或编码中的任何替代方法的任何想法,以便图像可以上传和写入图像文件夹?

我是PHP的新手

非常感谢

2 个答案:

答案 0 :(得分:1)

您的系统管理员似乎对脚本修改文件系统的方式施加了限制。特别是在大学环境中,必须采取严格的安全控制措施,以防止由学生或教师编写的编写不良或恶意代码所带来的内部和外部违规行为。

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

简而言之,为了防止在大学服务器上发生顽皮的事情,你受到限制。

答案 1 :(得分:0)

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

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