在我的ImageController中,我已将图像移动到目录并将图像路径保存在数据库中的表中,
public function store(Request $request)
{
$new_country = new SelectCountry();
$message = [
'required' => "This field can not be empty",
];
$this->validate($request, [
'country_name' => 'required',
'alternate_title' => 'required',
'country_flag' => 'required',
], $message);
$new_country->country_name = $request->country_name;
$new_country->alternate_title = $request->alternate_title;
if($request->hasfile('country_flag'))
{
$country_flag_image = $request->file('country_flag');
$country_flag_name = $country_flag_image->getClientOriginalName();
$extention = $country_flag_image->getClientOriginalExtension();
$dirpath = public_path('assets/images/country/');
$country_flag_image->move($dirpath,$country_flag_name);
$new_country->country_flag_path = $dirpath.$country_flag_name;
}
$new_country->save();
return redirect()->route('admin.country');
}
现在我想使用路径并沿其他信息显示图像。我已使用以下代码返回视图,
public function select_country()
{
$countries = SelectCountry::all();
return view('auth.select_country')->with('countries',$countries);
}
在视图中,我使用以下代码显示存储在数据库中的数据,
<table class="table-hover table-responsive container-fluid col-xs-12 col-sm-12">
<thead>
<tr>
<th>Country Name</th>
<th>Alternate Title</th>
<th>Country Flag</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($countries as $country)
<td>{{ $country->country_name }}</td>
<td>{{ $country->alternate_title }}</td>
<td><img src="{{ $country->country_flag_path }}"></td>
<td>
<a type="button" href="" class="btn btn-warning btn-xs">Update</a>
<a type="button" href="" class="btn btn-danger btn-xs">Delete</a>
</td>
@endforeach
</tbody>
问题是在显示其他信息时不显示图像。 img 标记中的 src 属性是返回路径而不是目录。
如果有任何解决方案,请告诉我。感谢。
答案 0 :(得分:1)
我认为您的问题在于设置存储文件夹的位置。 Laravel自动引用public
文件夹以存储图像等,因此不需要public_path
功能。
默认情况下,当Laravel在$dirpath
内查看时,请尝试将$dirpath = "/asset/images/country"
设置为public
。然后,您可以通过执行<img src="{{ $country->country_flag_path }}">
然后上传一个新图像并查看数据库的路径设置是什么,希望它应该更正常:)
请注意我的原始回答:
默认情况下,当Laravel在$dirpath
内查看时,请尝试将$dirpath = "images/country"
设置为public
。然后,您可以通过执行<img src="{{ asset($country->country_flag_path) }}">
应该仍然有效,因为我总是这样做:)