【问题标题】:how to retrieve images or files from a certain route page in laravel?如何从 laravel 中的某个路由页面检索图像或文件?
【发布时间】:2020-05-01 13:56:13
【问题描述】:

我在某些路线上显示或检索用户个人资料照片时遇到问题。它适用于其他视图,尤其是主要视图。当我尝试在某个视图上显示但更改路线时,照片无法显示。

示例:1如果我尝试使用此视图和路由从我的数据库中显示或检索图像,它将失败

Route::get('staff/staffprofile/payslip', function () {
    return view('payslip');
});

示例 2: 使用以下代码:

Route::get('/payslip', function () {
    return view('payslip');
});

这就是我显示照片的方式,它适用于示例 2

<img src="uploads/{{$stp->image}}">

我需要有关如何在某些路线上显示的帮助

【问题讨论】:

  • 尝试在图片源的开头添加/&lt;img src="/uploads/{{$stp-&gt;image}}"&gt;
  • 我在专门的答案中添加了一些精确度,如果您有兴趣了解它是如何工作的 :)

标签: php sql laravel eloquent


【解决方案1】:

它不起作用的原因是“漂亮的 URL”和路径的工作方式(相对/绝对)。

尝试查看具有不同深度“级别”的 URL:

  • /staff/staffprofile/payslip 将是 2 级
  • /payslip 将是 0 级

鉴于您可能使用“公共”文件夹来存储所有资产和 index.php 文件,因此您需要确保网络服务器实际使用相对于您的“根”文件夹的路径,在此公用文件夹的情况。


假设您的图像存储在.../public/uploads/。 (... 是路径中之前的文件夹)

根据您链接图片的方式,网络服务器将在不同的位置搜索图片:

没有第一个正斜杠 (uploads/image.png)

  • 开启/staff/staffprofile/payslip : .../public/staffprofile/payslip/uploads/image.png
  • 开启/payslip.../public/uploads/image.png

没有正斜杠,它只适用于“0级”网址。

然而,使用正斜杠 (/uploads/image.png)

  • 开启/staff/staffprofile/payslip : .../public/uploads/image.png
  • 开启/payslip : .../public/uploads/image.png

我也是通过艰难的方式学习并随机得出的,所以我很高兴它对某人有所帮助。

【讨论】:

    【解决方案2】:

    如果图片是使用 Laravel 的 Storage Facade 上传的,你可以使用 Storage::url() 来获取图片的绝对 url。

    如果您想使用相对路径,您可以使用/uploads/... 或使用 HTML 标记设置基本 url。

    【讨论】:

      猜你喜欢
      • 2014-01-10
      • 2012-03-26
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多