Laravel 5上传并显示图像

时间:2017-03-04 09:08:08

标签: laravel laravel-5 laravel-5.3

基本上我想上传一个图像并将其显示给用户,在选择图像的那一刻,没有任何反应我没有出现错误或其他任何错误,我想知道发生了什么。

这是我的代码:

<form action="{{ action('BuilderController@testing') }}" role="form" method="POST">
    <input class="form-control filestyle margin images" data-input="false" type="file" data-buttonText="Upload Logo" data-size="sm" data-badge="false" />
</form>

<div class="logo">
    <img class="images" id="image" src="#" alt="Your Logo"/>
</div>

控制器:

public function testing() {
    if(Input::file())
    {
        $image = Input::file('photo');
        $filename = time() . '.' . $image->getClientOriginalExtension();
        $path = public_path('images/' . $filename);
        Image::make($image->getRealPath())->resize(200, 200)->save($path);
        $user->image = $filename;
        $user->save();
    }
}

3 个答案:

答案 0 :(得分:2)

您必须在html中使用此代码enctype="multipart/form-data"

<form id="uploadbanner" enctype="multipart/form-data" method="post" action="#">
   <input id="fileupload" name="myfile" type="file" />
   <input type="submit" value="submit" id="submit" />
</form>

答案 1 :(得分:0)

您必须将图片移动到文件夹存储并在表格中插入名称,尝试更改操作以路由网址例行动作=&#34; {{url(&#39; add / image&#39;)}}&#34 ;

路线示例

Route::post('add/image', 'your_controller_Image@testing');

控制器

public function testing(Request $request) {

  $insert_image = new App\NameTable();

  $file = $request->file('myfile_input');
  $path = public_path().'/images';
  $filename = time().'.'.$file->getClientOriginalExtension();

  if($file->move($path,$filename) )
    {
      $insert_image->column_name = $request->file($filename);
      $insert_image->save()
    }
}

形式

<form enctype="multipart/form-data" method="post" action="{{ url('add/image')}}"> 
<input id="fileupload" name="myfile_input" type="file" /> 
<input type="submit" value="submit" id="submit" /> 
</form>

答案 2 :(得分:0)

使用ajax添加图像而不提交表单在选择图像时自动提交

路由

Route::post('add/image',
[
  'as'=>'test.image.add',
  'uses'=>'Controller@testing' 
]);

控制器

public function testing(Request $request)
{
  $insert_image = new App\NameTable();

  $file = $request->file('file_upload');
  $path = public_path().'/images';
  $filename = time().'.'.$file->getClientOriginalExtension();

  if($file->move($path,$filename) )
  {
    $insert_image->column_name = $request->file($filename);
    $insert_image->save();
    Session::flash('messageSuccess',"Success, add image successfully !!");
    return back();
  } 

}

查看

<form  method="post" id="formimgInp" action="{{ route('test.image.add') }}" enctype="multipart/form-data">

   <input type="hidden" name="_token" value="{{ csrf_token() }}" />
   <input type="file" name="file_upload"  class="img_ava" id="imgInp"   />

</form>

<script>
document.getElementById("imgInp").onchange = function() {
    document.getElementById("formimgInp").submit();
}
</script>
相关问题