首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >渲染来自laravel中的存储/app/public文件夹的图像

渲染来自laravel中的存储/app/public文件夹的图像
EN

Stack Overflow用户
提问于 2018-06-19 00:34:00
回答 3查看 2.3K关注 0票数 0

我已经使用以下几行代码上传了laravel格式的图像:

代码语言:javascript
复制
        if($request->hasFile('filea'))

    {   

        $filepath = $request->filea->getClientOriginalName();

        $request->filea->storeAs('public/upload',$filepath);

    }

和存储在database.Images中的文件名都成功地存储在我的硬盘中。当我尝试在模板中渲染图像时,我使用了以下内容:

代码语言:javascript
复制
<img src="{{ asset('public/upload/'.$user->imagepath) }}/>"

这将创建以下链接:

代码语言:javascript
复制
<img src="http://localhost:28965/public/upload/IMG_20170906_105035.jpg"/>

我也试过了:

代码语言:javascript
复制
<img src="{{ asset('upload/'.$user->imagepath) }}/>"

但不会渲染任何图像。这里的语法错误是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-19 18:44:02

我已经找到了解决方案。事情是这样的:我已经上传了laravel中的图片,所以它将被存储在storage/app/public中。但是如果我尝试通过asset访问,它将不起作用,因为asset引用公共文件夹。所以我读取了config/filesystems.php,它有以下几行:

代码语言:javascript
复制
    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ], 

所以这意味着访问localhost:port/storage将链接到storage/app/public文件夹。所以我运行了这个命令

代码语言:javascript
复制
php artisan storage:link

在渲染的图像源中,我写道:

代码语言:javascript
复制
<img src="{{ url('storage/upload/'.$user->imagepath) }}" />

而且它起作用了。

票数 0
EN

Stack Overflow用户

发布于 2018-06-19 00:49:41

代码语言:javascript
复制
<img src="{{ asset('upload/'.$user->imagepath) }}">

如果文件存在于公共/上传中,并在.env文件中检查您的APP_URL,则此方法应该有效。

如果您的文件在您的存储中,请尝试:

storage_path('app/public/upload'.$user->imagepath)

像这样:

代码语言:javascript
复制
<img src="{{ storage_path('app/public/upload'.$user->imagepath) }}">
票数 0
EN

Stack Overflow用户

发布于 2018-06-19 01:01:58

您是否创建了符号链接?,您可以使用storage:link Artisan命令:

php artisan storage:link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50913907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档