Laravel 5.6 - Отказано в доступе при попытке получить изображение - PullRequest
0 голосов
/ 02 июля 2018

У меня есть проект Laravel 5.6, работающий в стеке Windows Bitnami WAMP. Я храню изображение, как это ..

$imageName = myfile.jpg
$path = $request->file->storeAs('images', $imageName);

Это работает, и файл правильно хранится, я пытаюсь получить его так ...

$ source = Storage :: get ('images', $ imageName);

Но я получаю сообщение об ошибке ...

file_get_contents(C:\Bitnami\wampstack-7.1.18-1\apache2\htdocs\myproject\storage\app\images): failed to open stream: Permission denied

Это похоже на проблему с разрешениями, папка storage \ app \ images выглядит так

drwxr-xr-x 1 win_user 192142 0 Jul  2 18:15 images

Кто-нибудь есть идеи, где я иду не так?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Это вопрос разрешения. Выполните следующие команды в родительском каталоге корня вашего документа.

Обратите внимание, что public_html не является каталогом public проекта laravel. Это родительский каталог.

Для Ubuntu:

sudo chown -R www-data:www-data public_html

Для CentOS

sudo chown -R apache:apache public_html

Если ваш веб-сервер не имеет прав на запись файла, выполнение этих команд решит проблему. Дайте мне знать, если это поможет.

0 голосов
/ 02 июля 2018

file_get_contents (C: \ Bitnami \ wampstack-7.1.18-1 \ apache2 \ htdocs \ myproject \ storage \ app \ images): не удалось открыть поток: в доступе отказано

Вы сохраняете файл на локальном диске по умолчанию, проверьте ваш config / filesystems.php

локальный диск по умолчанию не разрешает доступ по URL

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

упс, моя ошибка, вы получаете файл, а не отображаете изображение по URL

попробуй $source = Storage::get('images/' . $imageName);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...