验证规则里存在的属性(文件上传)在表单验证通过后报 Undefined index
Laravel 8.40
PHP 7.4.30
问题介绍
报错内容
local.ERROR: Undefined index: file {"exception":"[object] (ErrorException(code: 0): Undefined index: file at /BASE_PATH/app/Http/Controllers/UploadController.php:29)
有一个图片上传的接口,客户端是微信小程序,今天某个用户选了某张图片,上传后就出现了这个错误。
这个问题大概是与用户手机系统、微信版本、选中的图片格式、也有关系。我们无法复现
按我的理解是既然验证通过了,那这个file
属性必然是存在,不知为何报错
控制器 app/Http/Controllers/UploadController.php
use App\Http\Requests\ImageUploadRequest;
public function image(string $dir, ImageUploadRequest $request): JsonResponse
{
$validated = $request->validated();
//下面这行就是报错的 line:29
$res = $this->upload($validated['file']), 'image', $dir);
return $this->response->json($res);
}
验证器 app/Http/Requests/ImageUploadRequest.php
public function rules()
{
return [
'file' => 'file|image'
];
}
推荐文章: