laravel实现上传图片并在页面显示的例子

本文将讲解如何在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文档。

后端开发标签