本文将讲解如何在Laravel中实现上传图片并在页面上显示的一个例子。如果你正在做一个需要上传图片功能的网站,那么这篇文章将对你非常有帮助。
1. 添加路由
首先,我们需要在web.php文件中添加一个上传图片的路由。例如,我们可以添加以下路由:
Route::get('/upload-image', 'ImageController@index');
Route::post('/upload-image', 'ImageController@store');
2. 创建控制器
我们需要创建一个控制器来处理上传图片的请求。在命令行中使用以下命令创建一个控制器:
php artisan make:controller ImageController
然后在控制器中添加以下方法:
public function index()
{
return view('upload-image');
}
public function store(Request $request)
{
$image = $request->file('image');
$name = $image->getClientOriginalName();
$destinationPath = public_path('/images');
$image->move($destinationPath, $name);
return back()
->with('success','Image Upload successful')
->with('image',$name);
}
上面的代码中,我们在store方法中处理上传图片的请求。首先,我们使用$file方法获取文件,然后使用getClientOriginalName方法获取文件名。接着,我们将文件移动到public/images目录下。最后,我们返回之前的页面,并显示上传成功的消息。
3. 创建视图
接下来,我们需要创建一个视图来显示上传图片的表单。在resources/views目录下创建一个名为upload-image.blade.php文件,并添加以下内容:
<form action="/upload-image" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="image">Select image</label>
<input type="file" class="form-control" name="image" id="image">
</div>
<button type="submit" class="btn btn-primary">Upload</button>
</form>
上面的代码中,我们创建了一个表单,其中包含一个文件输入字段。
4. 在视图中显示上传的图片
最后,我们需要修改视图来显示上传的图片。在resources/views/upload-image.blade.php文件中添加以下内容:
<div class="row">
<p>Upload Image:</p>
<br/>
@if ($message = Session::get('success'))
<div class="alert alert-success alert-block">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>{{ $message }}</strong>
</div>
<img src="/images/{{ Session::get('image') }}" class="img-thumbnail" />
@endif
</div>
上面的代码中,我们在视图中检查是否有上传成功的消息。如果有,我们将显示一条成功的消息以及上传的图像。请注意,我们是如何使用Session::get()方法从会话中检索图像文件名的。
总结
在本文中,我们学习了如何在Laravel中实现上传图片并在页面上显示的例子。现在,你已经学会了如何在Laravel中处理上传图片,并将其显示在页面上。如果你想要了解更多关于Laravel的内容,请阅读Laravel文档。