Laravel 5.4 从错误的路径获取图像
Laravel 5.4 fetching image from wrong path
我有一个表单可以将数据(包括图像)上传到我的数据库并从视图中访问该数据。问题是 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()
,这将 return 绝对路径,而不是相对于您的文档根目录的路径或 public 路径(您想要的)。
当使用 move()
时,Laravel 使用相对于您的 public 路径的给定路径:
所以你可以简单的使用:
$mydata->img1920 = $request->file('img1920')->move('img/uploads', $filename);
其中 $filename
是您要调用的文件。
您还可以将 store()
或 storeAs()
与配置的文件系统结合使用,其工作方式相同。
官方文档对辅助函数的说明如下public_path()
public_path()
The public_path function returns the fully qualified path to the
public directory:
$path = public_path();
public_path
returns 完全限定的路径。
而不是 public_path()
尝试使用 url()
或 move()
我有一个表单可以将数据(包括图像)上传到我的数据库并从视图中访问该数据。问题是 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()
,这将 return 绝对路径,而不是相对于您的文档根目录的路径或 public 路径(您想要的)。
当使用 move()
时,Laravel 使用相对于您的 public 路径的给定路径:
所以你可以简单的使用:
$mydata->img1920 = $request->file('img1920')->move('img/uploads', $filename);
其中 $filename
是您要调用的文件。
您还可以将 store()
或 storeAs()
与配置的文件系统结合使用,其工作方式相同。
官方文档对辅助函数的说明如下public_path()
public_path()
The public_path function returns the fully qualified path to the public directory:
$path = public_path();
public_path
returns 完全限定的路径。
而不是 public_path()
尝试使用 url()
或 move()