En esta ocasión vamos a prender a subir multiples archivos a nuestro servidor con Laravel 5.*. A veces necesitamos subir varios archivos al mismo tiempo al servidor desde una misma ventana. Con Laravel es muy sencillo hacerlo, veamos cómo:

Nota: para este tutorial debes tener instalado un sitio en Laravel 5.*, si aún no sabes cómo, puedes ir a Styde.net allí pueden iniciar con Laravel y aprender muchas cosas más.

El Formulario:

Para poder enviar archivos hacia un servidor en tu formulario debes configurar el atributo enctype de la siguiente manera:

Html
<form action="{{ route('product.store') }}" method="post" enctype="multipart/form-data">
</form>
Blade
{!! Form::open(array('route'=>'product.store','method'=>'POST', 'files'=>true)) !!}

El campo (Obviamente)

Html
<input type="file" name="images[]" multiple/>
Blade
{!! Form::file('images[]', array('multiple' => true)) !!}

El controlador

Definimos la ruta Resource para el controlador ProductController. Pero tambien puedes definir tu propia ruta que reciba datos por medio de POST.

Route::resource('product', 'ProductController');

En este ejemplo tenemos un controlador llamado ‘ProductController‘, un metodo que rederiza una vista create y un metodo que recibe los parametros enviados store.

&lt?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class ProductController extends Controller
{
	// vista de nuestro formulario
	public function create()
	{
		return view('product.create');
	}

	public function store(Request $request)
	{
		// getting all of the post data
		$files = $request->file('images');
		$destinationPath = 'uploads';
		
		// recorremos cada archivo y lo subimos individualmente
		foreach($files as $file) {
			$filename = $file->getClientOriginalName();
			$upload_success = $file->move($destinationPath, $filename);
		}

		// Demas codigo para crear producto

		return redirect()->to('product.index')->with('success', 'Archivos cargador éxitosamente');
	}
}

El método store lo que hace es recibir el nombre del array de imagenes, recorrer este mismo mediante un foreach y guardar cada imagen individualmente. Es un ejemplo realmente sencillo, pero te ayuda a empezar por algo, después puedes involucrar validaciones para recibir ciertos archivos o para restringir el peso total de los archivos.

Espero que sea una buena ayuda para tu proyecto, cualquier duda escribe un comentario o contactame.