Laravel and Angular js file upload
<p>How I can save images with laravel and angular js ?
are more inputs , but that work for me , are of type text</p>

<p>My index: </p>

<pre><code>&lt;div class="container" ng-app="todoApp" ng-controller="todoController"&gt;
&lt;h1&gt;Profile&lt;/h1&gt;
&lt;div class="row"&gt;
    &lt;div class="col-sm-4"&gt;
        &lt;div class="form-group"&gt;
            &lt;h4&gt;Foto de perfil: &lt;/h4&gt;
            &lt;div class="input-group"&gt;
                &lt;span class="input-group-btn"&gt;
                    &lt;span class="btn btn-primary btn-file"&gt;
                        Browse&amp;hellip;  &lt;input type='File' name="photo" ng-model="todo.photo" class="image-upload"required/&gt;
                    &lt;/span&gt;
                &lt;/span&gt;
                &lt;input type="text" class="form-control" readonly&gt;
            &lt;/div&gt;
        &lt;/div&gt;

    &lt;div class="col-sm-6"&gt;
        &lt;div class="form-group"&gt;
            &lt;label for=""&gt;Nombre del bar: &lt;/label&gt;
            &lt;input type='text' ng-model="todo.name" class="form-control" required/&gt;
        &lt;/div&gt;
        &lt;button class="btn btn-primary btn-block"  ng-click="addTodo()"&gt;Guardar&lt;/button&gt;
        &lt;i ng-show="loading" class="fa fa-spinner fa-spin"&gt;&lt;/i&gt;
    &lt;/div&gt;
&lt;/div&gt;
</code></pre>

<p></p>

<p>My route:</p>

<pre><code>Route::get('admin/bar', 'BarsController@index');
Route::resource('/bar', 'BarController');
</code></pre>

<p>My model:</p>

<pre><code>namespace App;
use Cviebrock\EloquentSluggable\SluggableInterface;
use Cviebrock\EloquentSluggable\SluggableTrait;
use Illuminate\Support\Facades\Input;
use Illuminate\Database\Eloquent\Model;

 class bar extends Model
 {
   protected $fillable = array('name','photo', 'cover', 
   'description',  'phone', 'email','direction', );

 public function setPhotoAttribute($photo)
 {
   $file = array('image' =&gt; Input::file('photo'));
   $destinationPath = 'images/bar/profile';
   $extension = Input::file('photo')-&gt;getClientOriginalExtension();
   $fileName = rand(11111,99999).'.'.$extension;
   $this-&gt;attributes['photo'] = $fileName;
   Input::file('photo')-&gt;move($destinationPath, $fileName);
  }
</code></pre>

<p>BarsController: </p>

<pre><code>public function index()
{
    return view ('bar.index');
}
</code></pre>

<p>BarController:
    public function store() {</p>

<pre><code>    $todo = \Auth::user()-&gt;bars()-&gt;create(Request::all());
    return $todo;
}
</code></pre>

<p>App.js ( Angular JS ):</p>

<pre><code>var app = angular.module('todoApp', function($interpolateProvider) {
    $interpolateProvider.startSymbol('&lt;%');
    $interpolateProvider.endSymbol('%&gt;');
});
// Todo Controller ,...

app.controller('todoController', function($scope, $http) {
    $scope.todos = [];
    $scope.loading = false;

    $scope.init = function() {
        $scope.loading = true;
        $http.get('/bar').
        success(function(data, status, headers, config) {
            $scope.todos = data;
                $scope.loading = false;


        });
    }

    $scope.addTodo = function() {

    $scope.loading = true;

    $http.post('/bar', {    
            name: $scope.todo.name,
            description: $scope.todo.description,
            phone: $scope.todo.phone,
            email: $scope.todo.email,
            direction: $scope.todo.direction,
            photo: $scope.todo.photo,
            cover: $scope.todo.cover

        }).success(function(data, status, headers, config) {
            $scope.todos.push(data);
            $scope.todo = '';
            $scope.loading = false;
        });
    };

    $scope.updateTodo = function(todo) {
        $scope.loading = true;

        $http.put('/bar' + todo.id, {
            title: todo.title,
            done: todo.done
        }).success(function(data, status, headers, config) {
            todo = data;
                $scope.loading = false;

        });;
    };

    $scope.deleteTodo = function(index) {

        $scope.loading = true;

        var todo = $scope.todos[index];

        $http.delete('/bar' + todo.id)
            .success(function() {
                $scope.todos.splice(index, 1);
                    $scope.loading = false;

            });;
    }; 

    $scope.init();

});
</code></pre>