【问题标题】:Lumen How to validate image upload and display an alert on the frontend?Lumen 如何验证图像上传并在前端显示警报?
【发布时间】:2017-10-16 03:26:19
【问题描述】:

我正在构建一个 Web 应用程序,使用 angular2 作为前端,使用 lumen 作为后端。我有一个用户可以上传图片的表单,但我想添加验证,以便用户只能上传有效的图像格式(JPEG、PNG、GIF 等),并且文件不能大于 32mb。如果不满足这些条件中的任何一个,我想将响应作为警报返回到我的前端

上传表单(angular2)

<form ngNoForm action=""
      target="_blank"
      method="POST"
      enctype="multipart/form-data">
  <input type="file" name="image" id="image">
  <input type="submit" value="Upload" name="submit">
</form>

我如何将它保存到数据库中

public function imageUpload(Request $request) {

    // Check to make sure file is valid and doesnt exceed 32mb or display alert

    $file = $request->file('image');
    $imagedata = file_get_contents($file);
    $base64 = base64_encode($imagedata);

    if (DB::table('paint')->where('id', 1)
                          ->update(['pic' => $base64]))
    {
         //Display alert on frontend after pic sucessfully uploaded
    }

【问题讨论】:

    标签: laravel angular lumen


    【解决方案1】:
    public function imageUpload(Request $request) {
        $this->validate($request, [
            'image' => 'required|image|max:32.896'
        ]);
        //rest of your code
    }
    

    您可以在函数顶部调用 validate 方法。如果一个条件失败,它将返回一个您可以显示的错误。其检查:

    • 如果请求包含变量图像
    • 如果是图像类型(jpeg、png、bmp、gif 或 svg)
    • 它的大小小于或等于 32.896 kb

    更多规则可以查看:https://laravel.com/docs/5.4/validation

    在您的 html 文件中,您可以执行以下操作:

    <div *ngFor="let elements of errors">
      <div class="alert alert-warning" *ngFor="let element of elements">{{ element }}</div>
    </div>
    

    这取决于您希望如何显示您的消息。

    【讨论】:

    • 谢谢。如何让这些错误在我的前端显示为引导警报&lt;div class="alert alert-warning"&gt;&lt;/div&gt;?目前它只是将错误显示为 json 数组
    • 您可以在 Angular html 文件中使用 2 个 ngFor 循环对其进行迭代,更新我的答案
    • 我该怎么做?我要迭代什么?
    • 您遍历从使用 angular to lumen 发出的 http 请求中获得的 json 响应。
    • 我在我的表单中使用操作来像我原来的帖子一样发出帖子请求
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 2018-02-21
    • 2018-01-03
    相关资源
    最近更新 更多