Laravel 5.6-尝试检索图像时权限被拒绝

时间:2018-07-02 17:24:51

标签: php laravel laravel-5

我有一个在Windows Bitnami WAMP堆栈上运行的Laravel 5.6项目。我正在存储这样的图像。

$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 :(得分:1)

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);

答案 1 :(得分:0)

这是权限问题。在文档根目录的父目录中执行以下命令。

  

请注意,public_html不是laravel项目的public目录。这是父目录。

对于Ubuntu:

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

对于centOS

sudo chown -R apache:apache public_html

如果您的Web服务器没有写文件权限,则执行这些命令将解决此问题。让我知道是否有帮助。