gpt4 book ai didi

php - 显示存储 laravel 5.3 中的图像

转载 作者:可可西里 更新时间:2023-11-01 00:04:51 25 4
gpt4 key购买 nike

我是 laravel 框架的新手,我想显示存储在存储文件夹中的图像。这个我试过了

路线

 Route::get('/userimage/{filename}', [
'uses' =>'PostController@getUserImage',
'as' => 'account.image',
]);

blade文件获取url并显示图片

 </section>
@if (Storage::disk('public')->has($user->first_name . '-' . $user->id . '.jpg'))
<section class="row new-post">
<div class="col-md-6 col-md-offset-3">
<img src="{{ route('account.image', ['filename' => $user->first_name . '-' . $user->id . '.jpg']) }}" alt="" class="img-responsive">
</div>
</section>

Controller

 public function getUserImage($filename)
{
$file = Storage::disk('public')->get($filename);
return new Response($file,200);
}

如何使用上面的代码显示图像?

最佳答案

我遇到了同样的问题。问题是,您无法按照建议访问存储中的内容 here你可以简单地从 public/storagestorage/app/public 创建一个 symbolic link 通过使用这个命令 php artisan storage:link 然后你可以像这样通过公共(public)目录访问存储目录中的任何内容 asset('storage/path_to_file'),当然,有时您不可能这样做(例如,当您将项目部署到共享主机时)。如果是这种情况,您可以尝试将文件上传到公共(public)目录(每个人都可以访问)并使用 asset() 方法处理文件1. 你可以简单地在存在于 config/filesystems.php 的磁盘阵列中定义一个新的磁盘驱动程序。在 laravel 5.4 中,默认定义了三个驱动('local', 'public', 's3')。你只需要添加你自己的驱动程序,我们在这里称之为 'MyDiskDriver'(但你可以随意命名)。config/filesystems.php

    'disks' => [

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

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

's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
'MyDiskDriver' => [
'driver' => 'local',
'root' => public_path('uploads'),
'url' => env('APP_URL').'/public',
'visibility' => 'public',
],

],
];

请注意,对于“MyDiskDriver”,“root”已设置为 public/uploads(这意味着当您使用 Illuminate\Http\UploadedFile 类的存储方法并将“MyDiskDriver”的名称作为第二个参数传递时,laravel会将文件上传到 public/uploads 目录。)

  1. 当您使用 Illuminate\Http\UploadedFile 类的 store 方法时,您可以将新创建​​的磁盘驱动程序的名称(此处为“MyDiskDriver”)作为第二个参数传递,以便 laravel 可以使用它来存储您尝试存储的文件位于您在“root”(此处为 public/uploads)中指定的目录中。

  2. 您可以使用asset() 方法访问上传的文件。

编辑

除了执行第 2 步,您还可以将 .env 中的 FILESYSTEM_DRIVER 环境变量的值更改为您刚刚创建的磁盘驱动程序的名称,在我们的案例 MyDiskDriver。通过这种方式,您无需更改代码即可轻松更改磁盘驱动程序,只需更改 FILESYSTEM_DRIVER 环境变量的值

关于php - 显示存储 laravel 5.3 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41984496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com