Не могу загрузить изображения - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь загрузить изображение, но получаю проверку ошибки. Несмотря на то, что изображение хранится в папке пути publi c, я не знаю, почему я получаю эту ошибку, и я думаю, что это потому, что проверка

это пространство имен, которое я использую ....

use Illuminate\Support\Facades\DB;
use App\Section;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

и это код функции магазина ....

public function store(Request $request) {

        $request_order=$request->section_order;

        if(empty($request_order)) {

            $order_last=Section::latest('section_order')->get();

            if(empty($order_last)) {
                $request_order=1;
            }

            else {
                $request_order=$order_last[0]['section_order']+1;
            }
        }

        $rules=['section_name'=>'required|min:3',
                 'section_pic'=>'image',
               ];

        $customMessages = [
                        'section_name.required' => 'Please Enter Section Name ',
                        'section_name.min' => 'Section Name Must Be At Least 3 Character ',
                        'section_pic.image'  => 'You Should Choose Images Only',
                         ];

        $image=$request->file('section_pic');

        if ($image == "") {
            $image_name='default_img.jpg';
        }else {
            $image_name=rand(1, 20) . time() . $image->getClientOriginalName();
            $image->move(public_path('img'), $image_name);
        }

        $input_data=array('section_order'=> $request_order,
            'section_name'=> $request->section_name,
            'section_pic'=> $image_name);

        $validator = Validator::make($input_data, $rules, $customMessages);

        if ($validator->fails()) {
            return redirect('/Sections')->withErrors($validator,'store')->withInput();
        }

        Section::create($validator);

        return redirect('/Sections')->with('success_store','success');

    }

и это код вида ... .

<form class="needs-validation" novalidate action="{{route('Sections.store')}}" method="post" enctype="multipart/form-data">

       @csrf

       @if($errors->store->any())
       <div class="alert alert-danger">Sorry , Something wrong</div>
       @endif


       <div class="form-group row">
       <label class="col-md-2">Section Order</label>
       <div class="col-md-9">

       @if (!empty( $order_last_data ))

       <input type="number" name="section_order" class="form-control"
              value="{{ $order_last_data }}" readonly>
      @else
      <input type="number" name="section_order" class="form-control" value="1" readonly>
      @endif


      </div>
      </div>


      <div class="form-group row">
      <label class="col-md-2">Section Name</label>
      <div class="col-md-9">
      <input type="text" autofocus name="section_name"
       class="form-control name {{ $errors->store->first('section_name') ? 'border-danger' : '' }}" required>


       @if($errors->store->first('section_name'))
       <small class="text-danger">{{ $errors->store->first('section_name') }}</small>
       @endif

       </div>

       </div>

       <div class="form-group row">
       <label class="col-md-2">Section Image</label>
       <div class="col-md-9">
       <div class="input-group input-file" name="section_pic">
       <span class="input-group-btn input-group-prepend">
       <button class="btn btn-default btn-choose input-group-text form-control"
                                        type="button">Browse</button>
       </span>
       <input type="text" class="form-control {{ $errors->store->first('section_pic') ? 'border-danger' : '' }}" name="section_pic_name" />
       </div>


       @if($errors->store->first('section_pic'))
       <small class="text-danger">{{ $errors->store->first('section_pic') }}</small>
       @endif

       </div>
       </div>

      <button type="submit" class="btn btn-success">Save</button>
      <button type="button" class="btn btn-secondary" data dismiss="modal">Cancel</button>

</form>

когда я комментирую этот проверочный код в контроллере

// if ($validator->fails()) {
//     return redirect('/Sections')->withErrors($validator,'store')->withInput();
// }

я получаю this

так что я сделал не так. ..

1 Ответ

0 голосов
/ 25 января 2020

Проблема в том, что проверка ожидает файл из вашего запроса, и вы указали тип String. Вам необходимо указать тип файла в вашем запросе.

public function store(Request $request) {
    $rules=['section_name'=>'required|min:3',
                'section_pic'=>'image',
            ];

    $customMessages = [
                    'section_name.required' => 'Please Enter Section Name ',
                    'section_name.min' => 'Section Name Must Be At Least 3 Character ',
                    'section_pic.image'  => 'You Should Choose Images Only',
                        ];



    $validator = Validator::make($request->all(), $rules, $customMessages);

    if ($validator->fails()) {
        return redirect('/Sections')->withErrors($validator,'store')->withInput();
    }

    Section::create($validator);

    $request_order=$request->section_order;

    if(empty($request_order)) {

        $order_last=Section::latest('section_order')->get();

        if(empty($order_last)) {
            $request_order=1;
        }

        else {
            $request_order=$order_last[0]['section_order']+1;
        }
    }



    $image=$request->file('section_pic');

    if ($image == "") {
        $image_name='default_img.jpg';
    }

    else {
        $image_name=rand(1, 20) . time() . $image->getClientOriginalName();
        $image->move(public_path('img'), $image_name);
    }


    return redirect('/Sections')->with('success_store','success');
}

просмотреть файл

<form class="needs-validation" novalidate action="{{route('Sections.store')}}" method="post" enctype="multipart/form-data">

    @csrf

    @if($errors->store->any())
    <div class="alert alert-danger">Sorry , Something wrong</div>
    @endif


    <div class="form-group row">
    <label class="col-md-2">Section Order</label>
    <div class="col-md-9">

    @if (!empty( $order_last_data ))

    <input type="number" name="section_order" class="form-control"
            value="{{ $order_last_data }}" readonly>
    @else
    <input type="number" name="section_order" class="form-control" value="1" readonly>
    @endif


    </div>
    </div>


    <div class="form-group row">
    <label class="col-md-2">Section Name</label>
    <div class="col-md-9">
    <input type="text" autofocus name="section_name"
    class="form-control name {{ $errors->store->first('section_name') ? 'border-danger' : '' }}" required>


    @if($errors->store->first('section_name'))
    <small class="text-danger">{{ $errors->store->first('section_name') }}</small>
    @endif

    </div>

    </div>

    <div class="form-group row">
    <label class="col-md-2">Section Image</label>
    <div class="col-md-9">
    <div class="input-group input-file" name="section_pic">
    <span class="input-group-btn input-group-prepend">
    <button class="btn btn-default btn-choose input-group-text form-control"
                                        type="button">Browse</button>
    </span>
    <input type="file" class="form-control {{ $errors->store->first('section_pic') ? 'border-danger' : '' }}" name="section_pic_name" />
    </div>


    @if($errors->store->first('section_pic'))
    <small class="text-danger">{{ $errors->store->first('section_pic') }}</small>
    @endif

    </div>
    </div>

    <button type="submit" class="btn btn-success">Save</button>
    <button type="button" class="btn btn-secondary" data dismiss="modal">Cancel</button>

</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...