【问题标题】:Laravel 5 Uploading and display imageLaravel 5 上传和显示图片
【发布时间】:2017-03-04 09:08:08
【问题描述】:

基本上我想上传一张图片并将其显示给用户,在选择图片的那一刻,什么都没有发生我没有收到错误错误或其他任何东西,我想知道发生了什么。

这是我的代码:

<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();
    }
}

【问题讨论】:

标签: laravel laravel-5 laravel-5.3


【解决方案1】:

您必须在 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>

【讨论】:

  • 仍然没有任何反应
  • 你必须在服务器中移动文件,然后为 Image::make() 努力看到这个stackoverflow.com/questions/20805175/laravel-file-upload
  • 我不太明白,所以我的代码是正确的,但我需要添加代码来移动文件?我认为 $path 会为我做到这一点
  • 不要调试模式?
【解决方案2】:

您必须将图像移动到文件夹存储并在表中插入名称,尝试将操作更改为路由 url 示例 action="{{ url('add/image')}}"

路线示例

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>

【讨论】:

【解决方案3】:

使用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>

【讨论】:

    猜你喜欢
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2019-05-15
    • 2019-06-30
    相关资源
    最近更新 更多