Почему значение картинки не загружается в БД из формы laravel? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть форма для добавления нового профиля.В форме есть поле для ввода файла, позволяющее пользователю загружать свое изображение в БД в качестве своего пути к изображению, сохраненному на сервере папок.

Однако мое тестирование показывает, что оно не обнаруженополе ввода имеет изображение и не входит в цикл оператора if ($ request-> hasFile ('image')).Это поле формы для загрузки файла.

 <div class="form-group">
            <div class="row">
              <label for="gambar" class="col-md-3 control-label">Gambar (Saiz gambar 250x300 pixels)</label>
              <div class="col-md-7">
                {!! Form::file('image', array('class' => 'form-control')) !!}
              </div>
            </div>
        </div>

Это функция контроллера для загрузки изображения:

    // **************************
    if ($request->hasFile('image')) {
        $image = $request->input('image');
        $photo = $request->file('image')->getClientOriginalExtension();
        $destination = public_path() . '/images/';
        $request->file('image')->move($destination, $photo);
        $data = ['name' => $request->nama,
             'No' => $request->no_id,
             'nokp' => $request->no_kp,
             'dd' => $dd,
             'yy' => $request->yy,
             'SectionID' => $request->sections,
             'CategoryID' => $request->kategori,
             'OperasiID' => $request->pangkat,
             'AgamaID' => $request->agama,
             'JantinaID' => $request->jantina,
             'BangsaID' => $request->bangsa,
             'nolahir' => $request->no_surat_lahir,
             'kumdarah' => $request->kumdarah,
             'Picture' => $request->$photo,
             ];

        $itemregistrations = DB::table('itemregistrations')->insert($data);

        if($itemregistrations)
            return redirect('profil');
        else
            return redirect()->back()->withInput();

    } else {
    $data = ['name' => $request->nama,
             'No' => $request->no_id,
             'nokp' => $request->no_kp,
             'dd' => $dd,
             'yy' => $requestyy,
             'SectionID' => $request->sections,
             'CategoryID' => $request->kategori,
             'OperasiID' => $request->pangkat,
             'AgamaID' => $request->agama,
             'JantinaID' => $request->jantina,
             'BangsaID' => $request->bangsa,
             'nolahir' => $request->no_surat_lahir,
             'kumdarah' => $request->kumdarah,
             // 'Picture' => $request->$filePath,
             ];

    $itemregistrations = DB::table('itemregistrations')->insert($data);

    if($itemregistrations)
        return redirect('profil');
    else
        return redirect()->back()->withInput();

    }

Ответы [ 2 ]

0 голосов
/ 26 октября 2018
Make sure your form have following attribute
enctype="multipart/form-data"
and use following laravel file upload code

       if ($request->hasFile('image')) {
            $is_file = true;
            $file_name = $input['image'] = time() . '.' . $request->image->getClientOriginalExtension();
            $request->image->move(base_path() . '/assets/images/users/', $input['image']);

        }
0 голосов
/ 26 октября 2018

В вашем массиве данных вы нацелились 'Picture' => $request->$photo,, а не 'Picture' => $photo,

Кроме того, похоже, что вы просто тянете расширение, посмотрите на приведенный ниже список некоторых используемых команд и когда:

  //Display File Name
  $file->getClientOriginalName();

  //Display File Extension
  $file->getClientOriginalExtension();

  //Display File Real Path
  $file->getRealPath();

  //Display File Size
  $file->getSize();

  //Display File Mime Type
  $file->getMimeType();

Для загрузки файла выполните

$file = $request->file('image');
$file->move($destination, $file->getClientOriginalName());
...