2017-03-04 86 views
1

基本上我想上传一个图像并将其显示给用户,在图像被选中的时刻,什么也没有发生,我得到了没有错误的错误或其他任何东西,我想知道发生了什么。Laravel 5上传和显示图像

这里是我的代码:

<form action="{{ action('[email protected]') }}" 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(); 
    } 
} 
+1

试试这个插件https://blueimp.github.io/jQuery-File-Upload/非常好的,简单 –

+0

需要它更高大小 – Przemek

回答

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> 
+0

仍然没有任何反应 – Przemek

+0

你必须移动服务器中的文件,然后努力Image :: make()看到这个http://stackoverflow.com/questions/20805175/laravel-file-upload –

+0

我不太明白,所以我的代码是正确的,但我需要添加代码来移动文件?我以为$ path会为我做这个 – Przemek

0

你必须移动图像文件夹的存储和刀片名称在表中,尝试更改动作以路由url例外action =“{{url('add/image')}}”

航线为例

Route::post('add/image', '[email protected]'); 

控制器

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> 
+0

你需要提交按钮吗?在输入中选择图像时是否可以上传和显示图像? – Przemek

+0

是的,你可以用ajax做到这一点 – Maximus

+0

小心向我展示一个如何做到这一点的例子? – Przemek

0

使用AJAX没有提交添加图片的形式自动提交时选择图像

路线

Route::post('add/image', 
[ 
    'as'=>'test.image.add', 
    'uses'=>'[email protected]' 
]); 

控制器

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>