LARAVEL - 显示存储文件夹中的图像

2024-01-03

我是 Laravel 新手,想知道是否有人可以帮助我完成简单的图像上传。

我有一个表单,允许用户创建个人资料并在此过程中上传其个人资料和头像。这一切都很完美。这是我的控制器的代码:

if (request()->hasFile('avatar')) {

        $file = request()->file('avatar');

        $file->storeAs('avatars/' . auth()->id(), 'avatar.jpg');
    }

图像保存在 storage/app/avatars/USER-ID/avatar.jpg 中

我不确定如何显示此文件夹中的图像。我已经寻找解决方案,但无法使用php artisan storage:link因为它不是我的服务器。在不使用存储链接的情况下如何解决此问题?我可以手动创建链接吗?

如果有人能给我解释一个解决方案那就完美了!

只需询问您是否需要任何代码片段。

Thanks!


您将需要使用插入控制器的路由来访问受保护的文件,该控制器可以访问文件并将其传递到视图。

我还建议使用该包intervention/image它可以通过安装

composer require intervention/image

有关访问图像的信息,请参阅下文:

// 你的路线web.php

// Public route to show user avatar
Route::get('avatars/{id}/{image}', [
    'uses'      => 'TheNameOfYourController@userProfileAvatar'
]);

// 在你的控制器文件中。在这个例子中,根据我们上面的名称,它将是userProfileAvatar()

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Image;

class TheNameOfYourController extends Controller
{

    /**
     * Show user avatar
     *
     * @param $id
     * @param $image
     * @return string
     */
    public function userProfileAvatar($id, $image)
    {
        return Image::make(storage_path() . '/avatars/' . $id . '/' . $image)->response();
    }

}

// 你的刀片视图显示图像

<img src="images/profile/{{ \Auth::user()->id }}/avatar.jpg" alt="{{ \Auth::user()->name }}">

这里有一些参考,但这个实例更进一步,在上传时将文件路径保存到数据库中:

// 路线示例

  • https://github.com/jeremykenedy/laravel-auth/blob/master/routes/web.php https://github.com/jeremykenedy/laravel-auth/blob/master/routes/web.php

// 控制器示例

  • https://github.com/jeremykenedy/laravel-auth/blob/master/app/Http/Controllers/ProfilesController.php https://github.com/jeremykenedy/laravel-auth/blob/master/app/Http/Controllers/ProfilesController.php

// 查看示例

  • https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/profiles/show.blade.php https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/profiles/show.blade.php

  • https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/profiles/edit.blade.php https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/profiles/edit.blade.php

  • https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/partials/nav.blade.php https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/partials/nav.blade.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LARAVEL - 显示存储文件夹中的图像 的相关文章

随机推荐