Laravel表单数据图像和文本字段验证

时间:2018-12-07 23:10:47

标签: laravel rest api upload postman

//TestRequest.php
public function rules()
{
    return [
        'name' => 'string|required|min:5',
        'tip' => 'string|required|min:5',
        'answer' => 'string|required',
        'image' => 'file|required|mimes:png,jpg,jpeg'
    ];
}


//TestController.php
public function put(TestRequest $request)
{
    $validated = $request->validated();
}

enter image description here

enter image description here

我正在做一些Rest API。我需要一个带有一些文本字段和一个图像上传字段的表单,但是验证时遇到问题。

  1. 当我在邮递员中以“表单数据”形式发送请求时,Laravel在验证中看不到任何字段(为什么?)。

  2. 当我以application/x-www-form-urlencoded的身份发送请求时,Laravel看到了我的文本字段,但是我当然不能上传图像。

API将由Android APP使用。我该如何解决?如何同时验证文本和文件输入?

3 个答案:

答案 0 :(得分:0)

使用application/x-www-form-urlencoded是上载图像的正确方法。根据第二张屏幕截图,您不是在Postman中发送文件字段,而是在第一张屏幕截图中发送。

答案 1 :(得分:0)

查看此

'name' => 'string|required|min:5',

最小为5个字符,但您发送test或4个字符。 Laravel验证规则,如果失败,它将停止,否则将不检查下一个验证。

答案 2 :(得分:0)

我想我已经找到了解决方案。 将方法从PUT更改为POST似乎可以解决此问题。