【问题标题】:Laravel 5.4 fetching image from wrong pathLaravel 5.4 从错误的路径获取图像
【发布时间】:2017-06-09 14:51:36
【问题描述】:

我有一个表单,可以将数据(包括图像)上传到我的数据库并从视图中访问该数据。问题是 laravel 从错误的路径获取数据。无论如何,这就是为什么 - 存储在数据库中的路径读取为; http://localhost/var/www/html/theproject/public/img/uploads/img.jpg

这当然是不可访问的,因为它应该是; http://localhost/theproject/public/img/uploads/img.jpg

这是我用来将位置路径设置为“img/uploads”的控制器代码;

$location = public_path('img/uploads');
$mydata->img1920 = $request->file('img1920')->move($location);
$mydata->save();

并通过这样的视图访问

<img  src="{{ $mydata->img1920 }}" >

那么为什么 laravel 会在路径中包含 /var/www/html 呢?

【问题讨论】:

    标签: php image path filesystems laravel-5.4


    【解决方案1】:

    您正在使用public_path(),它将返回绝对路径,而不是相对于您的文档根目录或公共路径(您想要的)的路径。

    当使用move() 时,Laravel 使用相对于您的公共路径的给定路径:

    所以你可以简单地使用:

    $mydata->img1920 = $request->file('img1920')->move('img/uploads', $filename);
    

    $filename 是您想要调用该文件的位置。


    您还可以将store()storeAs() 与配置的文件系统结合使用,其工作方式相同。

    见:Storing Uploaded Files

    【讨论】:

    • 谢谢。像魅力一样工作。
    【解决方案2】:

    官方文档说下面的帮助函数public_path()

    public_path()

    public_path 函数将完全限定的路径返回到 公共目录:

    $path = public_path();

    public_path 返回完全限定的路径。

    尝试使用url()move() 而不是public_path()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-06
      • 2020-09-18
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多