【问题标题】:Laravel 5.1 add photo with formLaravel 5.1 添加带有表单的照片
【发布时间】:2016-09-04 17:40:53
【问题描述】:

我使用 laravel 5.1,我需要将照片存储到文件夹 /images 中。

我有商店功能:

public function store(Requests\VoucherRequest $request)
    {

        //$photo= null;
        $file = array('photo' => $request->file('photo'));
        // setting up rules
        dd($request->file('photo'));
        $rules = array('photo' => 'required|image|max:10000'); //mimes:jpeg,bmp,png and for max size max:10000
         // doing the validation, passing post data, rules and the messages
        $validator = Validator::make($file, $rules);
        if ($validator->fails()) {
        // send back to the page with the input data and errors
         return redirect()->back()->withErrors(["photo" => "Photo requirments - format: jpg, jpeg, png | max. size: 1 MB"]);

        }
        else {
    // checking file is valid.
        if ($request->file('photo')->isValid()) {
        $destinationPath = public_path().'/images'; // upload path
        $extension = $request->file('photo')->getClientOriginalExtension(); // getting image extension
        $photo  = str_random(5).'.'.$extension; // renameing image
         $request->file('photo')->move($destinationPath, $photo); // uploading file to given path
         // sending back with message

         }
        else {
      return redirect()->back()->withErrors(["photo" => "Photo requirments - format: jpg, jpeg, png | max. size: 1 MB"]);
        }
        }


        $voucher = new Voucher($request->all());
        //$article['key']= str_random(30);
        $voucher['photo'] = $photo;


        Auth::user()->vouchers()->save($voucher);

        Alert::success('Voucher has beed added!','Good job!')->persistent("Close");



        return redirect('vouchers');
    }

我在 create.blade.php 里面也有:

{!! Form::open(['url'=>'vouchers','files' => 'true']) !!}

                @include('vouchers.form',['submitButtonText'=>'Click to Add New Vocuher'])

                {!! Form::close() !!}

我有 form.blade.php:

<div class="form-group row del hidden">
    <p class="col-md-3 text-right">{!! Form::label('photo','Upload best image of room') !!}</p>
    <div class="col-md-6">
    {!! Form::file('photo', null, ['class'=>'btn btn-info']) !!}
    </div><br>

</div>

<div class="form-group row">
    <div class="col-md-12">
    <div class="output"><h6 class="text-center">Click here to add image</h6>
    <p class="text-center">( Allowed format is: jpg, jpeg, png | max. size: 1 MB )
    <div class="image" class="col-md-3">
      <img id="image" style="width:100%;">
    </div>
    </div>
    </div>

</div>

和js代码:

           $(function () {


      $( ".output" ).on( "click", function() {
  $('#photo').trigger('click');
});
    $("#photo").on("change", function (e) {
    var image = document.getElementById('image');
    image.src = URL.createObjectURL(e.target.files[0]);
  });


});

但是现在当我点击提交表单时出现错误...我尝试 dd($file) 然后我得到 null 所以照片没有提交...

这里有什么问题?我就是没看到?

【问题讨论】:

  • 错误是什么?
  • 没有错误,我只是从表单中挑选照片,但是当尝试提交时,照片为 NULL 。为什么?

标签: javascript php forms laravel


【解决方案1】:
{!! Form::open(['url'=>'vouchers','files' => 'true']) !!}

{!! Form::open(['url'=>'vouchers','files' => true]) !!}

Docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 2013-12-20
    • 2016-10-02
    • 2016-03-02
    • 1970-01-01
    • 2016-09-19
    • 2023-03-12
    • 2020-03-19
    相关资源
    最近更新 更多