【问题标题】:Update image won't work更新图像不起作用
【发布时间】:2017-03-16 10:37:16
【问题描述】:

我正在尝试使用图像更新一些数据。其他数据已更新,但图像仍未更新。这是我的代码

路线

Route::get('film/{idFilm}/edit', array('as' => 'film.edit', 'uses' => 'FilmController@edit'));

Route::post('film/{idFilm}/update', array('as' => 'film.update', 'uses' => 'FilmController@update'));

控制器

public function edit($idFilm)
{
    $film = Film::findOrFail($idFilm);
    $genre = Genre::lists('namaGenre', 'idGenre');
    if (is_null($film))
    {
        return Redirect::to('film');
    }
    return View::make('pengelolaan.film.editfilm', compact('film','genre'));
}


/**
 * Update the specified resource in storage.
 *
 * @param  int  $id
 * @return Response
 */
public function update($idFilm)
{
    $rules = array(
    'judulFilm' => 'required',
    'durasi' => 'required|numeric',
    'keterangan' => 'required',
    'idGenre' => 'required'
    );

    $validation = Validator::make(Input::all(), $rules);
     if ($validation->fails()) 
     {   
        return Redirect::to('film/' . $idFilm . '/edit')
        ->withErrors($validation)
        ->withInput()
        ->with('message', 'There were validation errors.');
      } 
      else 
      {
            $films = Film::find($idFilm);
            $films->judulFilm=Input::get('judulFilm');
            $films->durasi=Input::get('durasi');
            $films->keterangan= Input::get('keterangan');
            $films->idGenre= Input::get('idGenre');
            if(Input::hasFile('foto'))
            {
                $file=Input::file('foto');
                $file->move('img',$file->getClientOriginalName());
                $filename=$file->getClientOriginalName();
                $films->foto = $filename;
                $films->save();
            }
            else
            {
                $films->save();
            }

            Session::flash('message', 'Data Berhasil Diubah');
            return Redirect::to('film');
      }
}

查看

 {{Form::model($film, array('route'=>array('film.update', $film->idFilm,'files' => TRUE)))}}
             <div class="form-group">
                <div class="col-lg-6">
                    {{ Form::label('judulFilm', 'Judul Film') }}
                    {{ Form::text('judulFilm', Input::old('judulFilm'), array('class' => 'form-control')) }}
                </div>
            </div>
            <div class="form-group">
                <div class="col-lg-6">
                    {{ Form::label('durasi', 'Durasi Film') }}
                    {{ Form::text('durasi', Input::old('durasi'), array('class' => 'form-control')) }}
                </div>
            </div>
            <div class="form-group">
                <div class="col-lg-6">
                    {{ Form::label('keterangan', 'Sinopsis Film') }}
                    {{ Form::textarea('keterangan', Input::old('keterangan'), array('class' => 'form-control')) }}
                </div>
            </div>
            <div class="form-group">
                <div class="col-lg-6">
                    {{ Form::label('idGenre', 'Genre') }}
                    {{ Form::select('idGenre', $genre,'',array('class'=>'form-control')) }}
                </div>
            </div>
            <div class="form-group">
                <div class="col-lg-6">
                    {{ Form::label('foto', 'Poster') }}
                    {{ Form::file('foto') }}
                </div>
            </div>
            </br>
            <div class="form-group">
                <div class="col-lg-6">
                    <a class="btn btn-default " href="{{ url('film') }}">Batal</a>
                    {{Form::submit('Simpan', array('type'=>'submit', 'class'=>'btn btn-default'))}}
            {{Form::close()}}

没有错误,所以我不知道它有什么问题。 有人可以告诉我有什么问题吗?提前致谢

【问题讨论】:

  • 您将照片的位置保存在哪里?
  • @Jessedegans 我将它保存在 public/img 文件夹中
  • 我的意思是您在模型中的哪个位置保存图像的位置?
  • 你得到 $filename 中的值了吗?
  • 你的代码是否进入 if(Input::hasFile('foto')) { } 条件?

标签: php laravel laravel-4


【解决方案1】:

面对这个问题的可能性很小:

  1. 检查是否有enctype="multipart/form-data"属性

  2. 检查您的文件大小。如果您的文件太大,请增加upload_max_filesize

  3. 可能是您的 tmp 文件夹的权限。为您的 TEM 文件夹提供权限。 ini_get('upload_tmp_dir');

【讨论】:

  • 我尝试了所有但图像仍然不会改变
  • 尝试转储(Input::all()) 并检查文件是否有任何值
  • 在 null 错误时调用成员函数 getClientOriginalName()
  • 仍然不知道如何引用图像...我的意思是您必须通过删除旧图像并将新图像命名为旧图像来替换它。或者您必须更改数据库中的位置记录。
  • @SekarAnindya 我不能,因为它仍然不清楚您实际上是如何设法保存图像以及您希望在哪里显示图像
猜你喜欢
  • 2018-07-12
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多