Mostrando entradas con la etiqueta Upload. Mostrar todas las entradas
Mostrando entradas con la etiqueta Upload. Mostrar todas las entradas

Procesar ficheros (imagenes) enviados por un form con el facades Storage

En la view:
{!! Form::open(array('route' => 'admin.posts.store', 'files' => true)) !!}
...
{!! Form::file('file', ['class' => 'form-control-file', 'accept' => 'image/*']) !!}

En el controller:
use Illuminate\Support\Facades\Storage;
...
if ($request->file('file')) {
// moverlo de la carpeta temporal a Storage/public/posts
$url = Storage::put('posts', $request->file('file'));

$post->image()->create([
'url' => $url
]);
}

IMPORTANTE: Ante de todos estos pasos enconfig\filesystems.php:
'default' => env('FILESYSTEM_DRIVER', 'public'),
Y si no tienes creado en tu carpeta public un acceso directo a storage crearlo con:
php artisan storage:link

Subir imágenes y almacenarlo en la BD

Crear un acceso directo para que desde nuestro proyecto pueda acceder a la carpeta storage:
php artisan storage:link Luego hay que volver a ejecutarlo cuando se pase a producción en el servidor para que te cree el mismo acceso directo.

En el controller:
use Illuminate\Support\Facades\Storage;
...
// el store te lo almacena en la carpeta storage
$imagenAux = $request->file('fichero')->store('public/imagenes');
$url = Storage::url($imagenAux);
File::create([
   'url_foto' => $url
]);


https://github.com/leandrosiegar/laravel_galeria_imagenes

Subir Ficheros y guardarlos en la BD

En el blade:
{!! Form::open(array('route' => 'actores.store', 'files'=>true)) !!}
    {{ csrf_field() }}
    <p>{!! Form::file('fotoActor', array('class' => 'form-control')) !!}</p>
    <p><input type="submit" value="Dar de alta actor"></p>
</form>

En el controller:
public function store(Request $request) {
        request()->validate([
            'nombre' => 'required'
        ]);
        request()->validate([
            'fotoActor' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);

        $nomImagen = rand(1,999).'_'.request()->fotoActor->getClientOriginalName();
        request()->fotoActor->move(public_path('images'), $nomImagen);

        // Actor::create($request->all());
        Actor::create([
            'nombre' => $request->all()["nombre"],
            'fotoActor' => $nomImagen
        ]);

        return redirect()->route('actores.index')
            ->with('success','Se ha insertado correctamente el actor');
    }