Загрузка изображения не может быть сохранена в каталоге и с ошибкой «htmlspecialchars () ожидает, что параметр 1 будет строкой, задан массив» - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть представление ввода, как это:

 <form class="form-group" action="/user6" method="post" enctype="multipart/form-data">
  <table class="table table-striped">
    <tbody><tr>
      <th style="width: 10px">#</th>
      <th>Pertanyaan</th>
      <th style="width: 60px">Tidak Baik</th>
      <th style="width: 60px">Baik</th>
    </tr>

    <div class="form-group">
        <tr>
          <td>1.</td>
          <td><input class="form-control" style="border:none"   type="text" name="question1" value="Kondisi, kebersihan, pelumasan bearing" readonly></td>
          {{--  <td><input class="form-control" type="text" placeholder=".input-lg"></td>  --}}

          <td>
              <label><input type="radio"  name="answer1" value="tidak baik" checked></label>
          </td>
          <td>
              <label><input type="radio"  name="answer1" value="baik"></label>
          </td>
        </tr>
            <tr>
                <td></td>
                <td> <input class="form-control" style="border:none"  type="file" name="image" value="" readonly> </td>

            </tr>

        </div>


        <tr>
            <td></td>
            <td> <div class="form-group">
                <label>Catatan</label>
                <textarea class="form-control" name="catatan" rows="3" placeholder="Enter ..." required></textarea>
             </div>

        </tr>


    <input type="hidden" name="alat_id" value="7">
    <input type="hidden" name="status"  value="3 Bulanan">             
    <input type="hidden" name="_token" value="{{ csrf_token() }}">

  </tbody>

</table>
      <div class="box-footer">
        <button type="submit" class="btn btn-primary" name="name" value="post">Submit</button>
       </div>
</form>

и чтобы сохранить это у меня есть контроллер:

 public function store6(Request $request)
{

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

        foreach($request->file('image') as $file)
        {
            $name=$file->getClientOriginalName();
            $file->move(public_path().'/images/', $name);  
            $data[] = $name;  
        }
     }

    $user = new pemeliharaan;
    $id = Auth::user()->id;

    $user->user_id = $id;
    $user->alat_id = $request->alat_id;
    $user->pertanyaan =json_encode($request->except
    (['_token','name','alat_id','status','catatan']));
    $user->catatan = $request->catatan;
    $user->status = $request->status;


    $user->save();
   //dd($user);
    return redirect('user/show6')->with('success', 'Data Telah Terinput');

}

прежде чем я добавлю "enctype =" multipart / form-data ", у меня не будет ошибки, НО не могу отобразить и сохранить изображение в каталоге. Я хочу сохранить изображение в каталог, но не могу сохранить. я создаю папку с именем «изображения» в общественных местах. после того, как я добавлю enctype = "multipart / form-data". это представление с ошибкой "htmlspecialchars () ожидает, что параметр 1 будет строкой, а массив представлен"

это мой взгляд после ввода:

 <table class="table table-condensed">
                    <tbody><tr>
                      <th style="width: 10px">#</th>
                      <th>Pertanyaan</th>
                      <th>Hasil</th>
                      {{--  <th style="width: 40px">Label</th>  --}}
                    </tr>
                    <tr>
                      <td>1.</td>
                      <td>{{ $pemeliharaan->pertanyaan['question1'] }}</td>
                      <td>
                          {{ $pemeliharaan->pertanyaan['answer1'] }}
                      </td>               
                    </tr>

                    <tr>
                      <td>2.</td>
                      <td>{{ $pemeliharaan->pertanyaan['image'] }}</td>
                      <td>
                          {{ $pemeliharaan->pertanyaan['image'] }}
                      </td>
                    </tr>


                      <td><img src="{{ url('images/'.$pemeliharaan->pertanyaan['image'])}}"></td>



                  </tbody></table>

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Занимайтесь одной проблемой за раз.В настоящее время вы сохраняете изображение, но не сохраняете путь к файлу, который вы сохранили в $ data.Вы нигде не используете $ data.

Тогда у вас возникла проблема с отображением новой модели в виде.Это совершенно другая проблема, и она вызвана передачей нестроковых данных в функцию htmlspecialchars, что и делает {{}}.

0 голосов
/ 18 апреля 2019

Что-то в вашей таблице является массивом, а не строкой, поэтому, если вы поместите это внутрь {{}}, это покажет ошибку.

Вы должны проверить

  • $pemeliharaan->pertanyaan['question1']
  • $pemeliharaan->pertanyaan['answer1']
  • $pemeliharaan->pertanyaan['image']

, используяdd() функция.

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