📅  最后修改于: 2023-12-03 15:08:41.530000             🧑  作者: Mango
在 Laravel 中,我们可以通过表单上传多张图片,但是这些图片必须符合一定的规则,比如大小、类型等。因此,我们需要在后台对上传的图片进行验证,以保证图片的有效性。接下来,我们就来介绍如何在 Laravel 中实现多张图片上传的验证。
首先,我们需要创建一个表单,允许用户上传多张图片。在 Laravel 中,可以通过 multiple
属性实现上传多张图片的功能。以下是一个简单的表单样例:
<form action="/file-upload" method="post" enctype="multipart/form-data">
@csrf
<input type="file" name="images[]" multiple>
<button type="submit">上传</button>
</form>
注意,我们的 input
标签的 name
属性需要设置为数组类型,[]
表示这是一个数组。
接下来,我们需要在后台编写验证逻辑,这里我们使用 Laravel 自带的验证器来实现。在控制器中,我们可以通过以下代码来验证上传的图片:
public function upload(Request $request) {
$validatedData = $request->validate([
'images.*' => 'required|image|max:2048',
]);
//图片验证通过逻辑
}
在上面的代码中,我们使用 validate
方法进行验证,其中 images.*
表示验证数组中的每一个元素, required
表示必须上传,image
表示只能上传图片类型, max:2048
表示图片大小不能超过 2MB。如果验证通过,该方法会返回验证通过的数据。
如果上传的图片不符合规则,则会返回相应的错误信息。我们可以在视图中输出这些错误信息,以提示用户。
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
在上面的代码中,我们使用 @if
判断当前是否有错误信息 ($errors->any())
,如果有则输出,通过 @foreach
遍历错误信息,输出错误内容。
最终,我们来看一下完整的示例代码,这里仅仅是一个示例,开发者需要根据实际业务需求进行修改。
public function upload(Request $request) {
$validatedData = $request->validate([
'images.*' => 'required|image|max:2048',
]);
//图片验证通过逻辑
return redirect()->back();
}
<form action="/file-upload" method="post" enctype="multipart/form-data">
@csrf
<input type="file" name="images[]" multiple>
<button type="submit">上传</button>
</form>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
通过以上介绍,我们知道如何在 Laravel 中验证多张图片上传了。通过 Laravel 的自带验证器,我们可以轻松实现上传图片的规则验证,以保证上传的图片符合标准。