Laravel 表单验证:上传文件大小控制
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
// 假设这是一个控制器方法,用于处理文件上传请求
public function uploadFile(Request $request)
{
// 创建验证规则
$rules = [
'file' => [
'required',
'file', // 确保传入的是文件
'mimes:jpg,jpeg,png', // 限制文件类型
'max:2048', // 限制文件大小小于或等于2MB
],
];
// 创建验证消息
$messages = [
'file.required' => '文件不能为空。',
'file.file' => '上传的不是有效文件。',
'file.mimes' => '支持的文件类型为: jpg, jpeg, png。',
'file.max' => '文件大小不能超过2MB。',
];
// 进行验证
$validator = Validator::make($request->all(), $rules, $messages);
// 验证失败的响应
if ($validator->fails()) {
return response()->json([
'status' => 'error',
'message' => $validator->errors()->first(),
], 422);
}
// 验证成功的处理逻辑(例如保存文件等)
if ($request->file('file')->isValid()) {
// 保存文件到服务器
$path = $request->file('file')->store('uploads', 'public');
return response()->json([
'status' => 'success',
'message' => '文件上传成功。',
'data' => ['file_path' => $path]
], 200);
} else {
return response()->json([
'status' => 'error',
'message' => '上传的文件无效。',
], 422);
}
}
这段代码展示了如何在Laravel框架中使用表单验证规则来控制上传文件的大小。它定义了一个验证规则数组,其中包括文件必须存在、必须是文件类型、必须是指定的MIME类型,并且大小不超过2MB。如果验证失败,它会返回一个包含错误信息的JSON响应。如果验证成功,它会处理文件上传,例如将文件保存到服务器。
评论已关闭