【问题标题】:Laravel form-data image and text fields validationLaravel 表单数据图像和文本字段验证
【发布时间】:2019-05-09 17:09:34
【问题描述】:
//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();
}

我正在做一些休息 API。我需要一个包含一些文本字段和一个图像上传字段的表单,但我在验证它时遇到了问题。

  1. 当我在 Postman 中将请求作为“表单数据”发送时,Laravel 在验证中看不到任何字段(为什么?)。

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

API 将被 android APP 使用。我该如何解决这个问题?如何对文本和文件输入进行验证?

【问题讨论】:

    标签: laravel rest api upload postman


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      看到这个

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

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

      【讨论】:

      • 不,如果字符串更长,我会得到相同的结果。
      【解决方案3】:

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

      【讨论】:

      • 因为无法添加带有 urlencoded 的图像。或者我不知道怎么做。
      猜你喜欢
      • 2015-03-15
      • 1970-01-01
      • 2013-05-10
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      • 2018-12-23
      • 2016-09-09
      相关资源
      最近更新 更多