首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用laravel对img上传进行验证

用laravel对img上传进行验证
EN

Stack Overflow用户
提问于 2019-03-22 13:21:36
回答 1查看 136关注 0票数 0

我试图将数据插入数据库,同时将图像上传到路径。问题似乎在于验证,但我看不出错误在哪里。我已经被困了两天了,想弄清楚我做错了什么。

以下是上传的代码:

代码语言:javascript
运行
复制
 protected function store(Request $request)
  {

      $nameFile = null;


      if ($request->hasFile('image')) {


          $name = uniqid(date('HisYmd'));


          $extension = $request->image->extension();


          $nameFile = "{$name}.{$extension}";


          $upload = $request->image->storeAs('categories', $nameFile);

          return $namefile;

      }
  }

以下是create函数:

代码语言:javascript
运行
复制
protected function create(array $data){
     $image = $this->store();
     return Bottleneck::create([
        'setor_id' => $data['setor_id'],
        'mes' => $data['mes'],
        'ano' => $data['ano'],
        'andon' => $data['andon'],
        'conteudo' => $data['coteudo'],
        'atividade_total' => $data['atividade_total'],
        'image' => $image
     ]);
 }

下面是验证:

代码语言:javascript
运行
复制
 protected function validator(array $data){
     return Validator::make($data , [
        'setor_id' => ['required', 'integer', 'exists:setor_linha,id'],
        'mes' => ['required', 'integer'],
        'ano' => ['required', 'integer'],
        'andon' => ['required', 'string'],
        'conteudo' => ['required', 'string'],
        'atividade_total' => ['required', 'string'],
        'image' => ['image'],
     ]);
 }

保存功能:

代码语言:javascript
运行
复制
public function save(Request $request){
     $validation = $this->validator($request->all());
     if($validation->fails()){
         Session::flash('message', 'Error');
        return redirect()->route('bottleneck');
     }else{
        $bottleneck = $this->create($request->all());
        Session::flash('message', 'Success');
        return redirect()->route('bottleneck');
     }
 }

这是我的表格:

代码语言:javascript
运行
复制
<form method="POST" action="{{route("create.bottleneck")}}">
                    @csrf
                    <div class="form-group row">
                        <label for="setor_id" class="col-md-4 col-form-label text-md-right">
                            {{__('Production Line')}}
                        </label>

                        <div class="col-md-8">
                            <select id="setor_id" name="setor_id" class="form-control " required>
                                <option>{{__('Select Value')}}</option>
                                    @forEach($line as $data)
                                        <option value={{$data->id}}>{{$data->name}}</option>
                                    @endforEach
                            </select>

                            @if($errors->has('setor_id'))
                                <span class="invalid-feedback" role="alert">
                                    <strong>
                                        {{$errors->first('setor_id')}}
                                    </strong>
                                </span>
                            @endif
                        </div>
                    </div>
                    <div class="form-group row">
                        <label for="mes" class="col-md-4 col-form-label text-md-right">{{__('Month')}}</label>
                        <div class="col-md-8">
                            <input type="number" name="mes" class="form-control">


                            @if($errors->has('mes'))
                                <span class="invalid-feedback" role="alert">
                                    <strong>
                                        {{$errors->first('mes')}}
                                    </strong>
                                </span>
                            @endif
                        </div>
                    </div>
                    <div class="form-group row">
                        <label for="ano" class="col-md-4 col-form-label text-md-right">{{__('Year')}}</label>

                        <div class="col-md-8">
                            <input type="number" name="ano" class="form-control" required>

                            @if($errors->has('ano'))
                                <span class="invalid-feedback" role="alert">
                                    <strong>
                                        {{$errors->first('ano')}}
                                    </strong>
                                </span>
                            @endif
                        </div>
                    </div>
                    <div class="form-group row">
                        <label for="andon" class="col-md-4 col-form-label text-md-right">{{__('Andon')}}</label>

                        <div class="col-md-8">
                            <textarea name="andon" class="form-control" required></textarea>

                            @if($errors->has('andon'))
                                <span class="invalid-feedback" role="alert">
                                    <strong>
                                        {{$errors->first('andon')}}
                                    </strong>
                                </span>
                            @endif
                        </div>
                    </div>
                    <div class="form-group row">
                        <label for="conteudo" class="col-md-4 col-form-label text-md-right">{{__('Content')}}</label>

                        <div class="col-md-8">
                            <textarea name="conteudo" class="form-control" required></textarea>

                            @if($errors->has('conteudo'))
                                <span class="invalid-feedback" role="alert">
                                    <strong>
                                        {{$errors->first('conteudo')}}
                                    </strong>
                                </span>
                            @endif
                        </div>
                    </div>
                    <div class="form-group row">
                        <label for="atividade_total" class="col-md-4 col-form-label text-md-right">{{__('Total Work')}}</label>

                        <div class="col-md-8">
                            <input type="text" name="atividade_total" required>

                            @if($errors->has('atividade_total'))
                                <span class="invalida-feedback" role="alert">
                                    <strong>
                                        {{$errors->first('atividade_total')}}
                                    </strong>
                                </span>
                            @endif
                        </div>
                    </div>
                    <div class="form-group row">
                        <label for="image" class="col-md-4 col-form-label text-md-right">{{__('Image')}}</label>

                        <div class="col-md-8">
                            <input type="file" name="image" class="form-control">

                            @if (count($errors) > 0)
                                <div class="alert alert-danger">
                                    <strong>Whoops!</strong> There were some problems with your input.<br><br>
                                    <ul>
                                    @foreach ($errors->all() as $error)
                                        <li>{{ $error }}</li>
                                    @endforeach
                                    </ul>
                                </div>
                            @endif
                        </div>
                    </div>

                    <div class="form-group row mb-0">
                        <div class="col-md-8 offset-md-4">
                            <button type="submit" class="btn btn-primary">
                                {{__('Save')}}
                            </button>
                        </div>
                    </div>
                </form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-28 09:10:23

您的表单需要有enctype="multipart/form-data"属性来上传图像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55300561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档