2016-10-27 4 views
1

Мне бы хотелось, чтобы мои пользователи могли загружать 4 изображения, это первый раз, когда я делаю подобную функцию, но я не знаю, КАК ЭТО? СОЗДАТЬ МАССИВ? я хотел бы иметь больше ресурсов, я не хочу использование MULTISELECT файлов, я tryng так:Laravel 5.2 - Входы MultiUpload

ФОРМЫ HTML:

{!! Form::open(array('url'=>'crea-regalo','method'=>'POST','class' => 'form-horizontal', 'files'=>true)) !!} 

<!-- photo --> 
<div class="form-group"> 
    <label class="col-md-3 control-label" for="textarea"> Picture </label> 
    <div class="col-md-8"> 

    <div class="mb10"> 

    <input id="input-upload-img1" name="image" type="file" class="file" data-preview-file-type="text"> 
    </div> 

    <div class="mb10"> 

    <input id="input-upload-img2" name="image" type="file" class="file" data-preview-file-type="text"> 
    </div> 


    <div class="mb10"> 

    <input id="input-upload-img3" name="image" type="file" class="file" data-preview-file-type="text"> 
    </div> 


    <div class="mb10"> 

    <input id="input-upload-img4" name="image" type="file" class="file" data-preview-file-type="text"> 
    </div> 

{!! Form::close() !!} 

CONTROLLER - На самом деле у меня есть код только один изображения - It работа хорошо

public function creaPost(Request $request){ 
     // get id of post created by user 
     $get_post_created = Post::where('slug', str_slug($request->input('title'),'-'))->first(); 
     // set file uploaded 
     $file = $request->file('image'); 
     // create instance image intervation 
     $image = image::make($request->file('image')); 
     // create path 
     $path = public_path().'/images/post/'; 
     // rename image with id user - if more one i can change this myself 
     $name_file = $get_post_created->id . '.' . $request->file('image')->getClientOriginalExtension(); 

     //resize 
     $image->resize(100,100); 
     // save image 
     $image->save($path.$name_file); 
     // update post with image uploaded 
     $user = new Post; 
     $user->where('id', '=', $get_post_created->id)->update(['image' => 'images/post/'.$name_file]); 
     return redirect('/')->with('message-success', 'Post creato con successo!'); 
} 
+1

Если вы загружаете несколько файлов с тем же именем ввода, указывает ли это его как массив ('name =" image [] "')? –

ответ

0

Просто добавьте [] к имени входа:

<input id="input-upload-img1" name="image[]" type="file" class="file" data-preview-file-type="text"> 

Или:

{!! Form::file('image[]') !!} 

Вы можете также удалить 4 входа и добавьте один, так что пользователь может выбрать 4 изображения в окне браузера один файл:

{!! Form::file('image[]', ['multiple' => true]) !!} 

В контроллере просто перебирать массив, чтобы получить каждый файл:

foreach ($request->image as $image) 
+0

'' добавить 'multiple' атрибут внутри этот вход подан. –

+0

return $ request-> image; дайте мне такое значение: [{}, null, null, null] Я попытался загрузить только одно изображение и не получил значение –