2017-03-04 131 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>