我有一个在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
有人知道我要去哪里错吗?
答案 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服务器没有写文件权限,则执行这些命令将解决此问题。让我知道是否有帮助。