上传图像无法保存在目录中并且出现错误“htmlspecialchars()期望参数1为字符串,给定数组”

问题描述 投票:0回答:2

我有一个像这样的视图输入:

 <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“之前,我的视图没有错误但是在目录中无法显示并保存图像。我希望将已保存的图像保存到目录但不能保存。我在公共场所创建了一个名为”images“的文件夹。我添加了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>
laravel
2个回答
0
投票

你表中的东西是数组,它不是一个字符串所以当你把它放在{{}}中时,它会显示错误。

你应该检查一下

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

通过使用dd()函数。


0
投票

一次处理一个问题。目前,您正在存储图像,但不保存文件的路径,该文件保存在$ data中。您没有在任何地方使用$ data。

然后,在视图中渲染新模型时出现问题。这是一个完全不同的问题,是由于传递给htmlspecialchars函数的非字符串数据引起的,这是{{}}的作用。

© www.soinside.com 2019 - 2024. All rights reserved.