file_put_contents в mkdir не удается открыть поток: отказано в разрешении

#php #php-5.6

#php #php-5.6

Вопрос:

Я пытаюсь загрузить изображение из приложения, которое я разработал. Я продолжаю получать эту ошибку failed to open stream: Permission denied .

Вот мой код на PHP 5.6

 $target_dir = '../../uploads/temp/'.$username.'/'.$acad_year.'/'.$semester;

        if (!is_dir($target_dir))
        {
            mkdir($target_dir, 777, TRUE);
        }

        file_put_contents($target_dir, base64_decode($_POST['image']));
 

Вот ошибка

 file_put_contents(../../uploads/temp/asdasda/2019-2020/2nd): failed to open stream: Permission denied in <b>C:xampphtdocssfasandroid_appv1UploadPicture.php</b>
 

Я провел некоторое исследование, но ничего не работает.

Комментарии:

1. Да, он создан. Что я могу сделать?

2. Кроме того, я бы настоятельно рекомендовал вам поработать над обновлением вашего приложения до более новой версии PHP; последнее официальное исправление безопасности для PHP 5.6 было почти два года назад.

3. Разве ваши file_put_contents не должны относиться к файлу внутри $target_dir , а не к самому каталогу.

4. Ох. Я работаю в Windows. Так это невозможно для Windows или есть способ обойти это?

5. @JohnMicko Игнорируйте мои предыдущие комментарии и смотрите комментарий Найджела Рена. Вы пытаетесь записать данные в каталог, а не в файл внутри каталога.