Laravel 5.4 从错误的路径获取图像



我有一个将数据(包括图像(上传到我的数据库并从视图访问该数据的表单。问题是 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

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

使用

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

因此,您可以简单使用:

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

但是,您要调用文件的位置$filename


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

请参阅: 存储上载的文件

官方文档对帮助程序函数public_path()

public_path((

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

$path = public_path((;

public_path返回完全限定的路径。

与其尝试使用url()move(),不如尝试使用public_path()

相关内容

  • 没有找到相关文章

最新更新