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

Php Laravel 5.4从错误路径获取图像,php,image,path,filesystems,laravel-5.4,Php,Image,Path,Filesystems,Laravel 5.4,我有一个表单,可以将数据(包括图像)上传到我的数据库,并从视图中访问该数据。问题是laravel从错误的路径获取数据。无论如何,这就是为什么——存储在数据库中的路径读取为; http://localhost/var/www/html/theproject/public/img/uploads/img.jpg 这当然是不可访问的,因为它应该是; http://localhost/theproject/public/img/uploads/img.jpg 这是我用来将位置路径设置为“img/uplo

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

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

您使用的是
public\u path()
,它将返回绝对路径,而不是相对于文档根目录或公共路径(您想要的)的路径

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

因此,您可以简单地使用:

$mydata->img1920 = $request->file('img1920')->move('img/uploads', $filename);
其中,
$filename
是您希望调用该文件的方式


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


请参阅:

官方文档对助手函数
public\u path()

公共_路径()

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

$path=public_path()

public\u path
返回完全限定路径


不要使用
public\u path()
尝试使用
url()
move()

谢谢。效果非常好。