无法打开流,权限被拒绝。

3

我正在创建一个头像上传功能,用户可以选择文件并将其上传,但是我遇到了以下错误:

Warning: move_uploaded_file(user_files/profile_img/c3487ff77d.jpg) [function.move-    uploaded-file]: failed to open stream: Permission denied in     /Applications/XAMPP/xamppfiles/htdocs/projects/lr/core/functions/users.php on line 4

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/Applications/XAMPP/xamppfiles/temp/phpi0WECJ' to 'user_files/profile_img/c3487ff77d.jpg' in /Applications/XAMPP/xamppfiles/htdocs/projects/lr/core/functions/users.php on line 4

第二到五行是:

function change_profile_image($user_id, $file_temp, $file_extn) {
$file_path = 'user_files/profile_img/' . substr(md5(time()), 0, 10) . '.' . $file_extn;
move_uploaded_file($file_temp, $file_path);
}

然后在loggedin.php文件中的其余部分是:

if (isset($_FILES['profile_img']) === true) {
            if (empty($_FILES['profile_img']['name']) === true) {
                echo 'Please choose a file!';
            } else {
                $allowed = array('jpg', 'jpeg', 'png');

                $file_name = $_FILES['profile_img']['name'];
                $file_extn = strtolower(end(explode('.', $file_name)));
                $file_temp = $_FILES['profile_img']['tmp_name'];

                if (in_array($file_extn, $allowed) === true) {
                    change_profile_image($session_user_id, $file_temp, $file_extn);
                } else {
                    echo 'Invalid file type! Allowed Types: ';
                    echo implode(', ', $allowed);
                }
            }
        }

        if (empty($user_data['profile_img']) === false) {
            echo '<img src="', $user_data['profile_img'],'" alt="', $user_data['first_name'] ,'\'s Profile Image">';
        }

我不确定我做错了什么?不是我的 .htaccess 文件有问题,一定是代码出了问题,但为什么呢?

谢谢


它告诉你哪里出了问题。您缺少移动文件的权限。您需要解决文件系统/用户权限问题,这完全与您发布的代码无关。 - user229044
请确保您要将图像移动到的文件夹可被PHP写入。 - castis
好的,我在 Mac 上,我应该怎么做呢?我在考虑使它可读和可写吗? - Harrison Howard
好的,那个有效了,但是现在我没有收到地址的回显? - Harrison Howard
@meagar 我该怎么办? - Harrison Howard
1个回答

6
该文件夹的权限是什么?您可能需要更改它以使PHP能够写入。

好的,我已经将文件设置为可读写。文件已经被放置在那里,但是PHP没有回显文件将被放置的位置。 - Harrison Howard
哦,糟了,我忘了,谢谢。 - Harrison Howard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接