9. Subir imágenes

En este capítulo, aprenderás a agregar la funcionalidad de subida de imágenes a tus componentes de Livewire.


7 comentarios

Inicia sesión para comentar

Comentarios:

  • Christian Torres

    Christian Torres hace 7 meses

    Hola, estoy tratando de subir archivos PDF en lugar de una imagen pero no se como puedo recuperarlos para mostrarlos. Cambie de local a public y lo guarda en una carpeta llamada Documentos. Como puedo hacer para mostrarlos.

    Gracias

    • Victor Arana Flores hace 7 meses

      Hola, se puede mostrar imagenes no pdf.

    • Christian Torres hace 7 meses

      Hola, ya lo resolví, gracias

  • Enrique

    Enrique hace 1 año

    Mi Código:

     

    Cambiar el path de acceso de local a public en config/filesystems.php:
    ```php
    'default' => env('FILESYSTEM_DRIVER', 'public'),
    ```

    Crear imágenes falsas en database/factories/PostFactory.php:
    ```php
    class PostFactory extends Factory
    {
       public function definition()
       {
           return [
               'title' => $this->faker->sentence(),
               'content' => $this->faker->text(),
               'image' => 'posts-images/' . $this->faker->image('public/storage/posts-images', 640, 480, null, false), // con false me regresa solo: imagen.jpg
           ];
       }
    }
    ``` 
    Crear la carpeta posts-images/ en database/seeders/DatabaseSeeder.php:
    ```php
    <?php

    namespace Database\Seeders;

    use Illuminate\Database\Seeder;
    use Illuminate\Support\Facades\Storage;

    class DatabaseSeeder extends Seeder
    {
       public function run()
       {
           Storage::deleteDirectory('public/posts-images');
           Storage::makeDirectory('public/posts-images');
           
           \App\Models\Post::factory(100)->create();
       }
    }
    ```

    Ahora Ejecutar los Seeders:
    ```bash
    php artisan migrate:fresh --seed
    ```

  • Carlos Sánchez

    Carlos Sánchez hace 1 año

    Hola, ya hice todo lo sugerido en los comentarios acerca de de cambiar el driver de local a public tanto en filesystems como en .env, agregué las dos líneas de código en el archivo Image.php en la carpeta vendor, incluso utilice el fakerphp picsum images, hice todo y logré que ejecute el seeder pero lo que hace es crear el archivo de la imagen y luego borrarlo uno por uno hasta que la carpeta queda vacía...alguien me podría explicarme por qué hace eso? y que solución hay? 

  • Francisco Jesús Adán Viedma

    Francisco Jesús Adán Viedma hace 1 año

    Hola, otra solución para descargar imágenes puede ser añadirlas con Intervention\Image tal que así

     

    $path = 'https://picsum.photos/640/480.jpg';

    $filename = uniqid() . '.jpg';

    Image::make($path)->save(public_path('storage/posts/' . $filename));

     

    return [

        'image' => 'posts/' . $filename

    ];

  • H. Javier Peláez

    H. Javier Peláez hace 1 año

    Este es mi código:

    // faker para img

            $faker = \Faker\Factory::create();

            $faker->addProvider(new \Smknstd\FakerPicsumImages\FakerPicsumImagesProvider($faker));


     

            return [

                'url' => 'posts/' . $faker->image('storage/app/public/posts', 640, 480, false),

            ];

     

    No olvides que en el return debes cambiar a $faker.

    Un saludo.

    • Arturo Coello Mendez hace 1 año

      Excelente amigo, me funciono gracias por compartir

    • Javier Luna hace 1 año

      Muchas gracias, me ayudo, funciona correctamente.

  • H. Javier Peláez

    H. Javier Peláez hace 1 año

    He encontrado una forma de resolverlo. Encontré las claves en esta librería, que trabaja con picsum.Y lo mejor es que descarga imágenes de verdad, no colores. Les comparto el enlace: https://github.com/smknstd/fakerphp-picsum-images

    Un abrazo a todos. Y gracias Victor por el curso.

    • Daniel Torres hace 1 año

      ¡Excelente aporte! El problema en mi caso es que tengo PHP 7.4 y requiere mínimo PHP 8.0

    • Matías Agustín Benítez hace 1 año

      Hola Javier. Gracias por el aporte. Aún así, no he podido lograr que funcione el código. Seguí los pasos expuestos en https://smknstd.medium.com/fake-beautiful-images-in-laravel-51062967d1db y también en https://github.com/smknstd/fakerphp-picsum-images. Todos los “paths” de las imágenes que me genera son ‘0’. ¿Podrías decirme que hiciste específicamente para que te funcionara? Grcias y saludos

    • Matías Agustín Benítez hace 1 año

      Mientras ejecuto las migraciones, si miro la carpeta posts veo como se vean creando y eliminando automáticamente todas las imágenes. Se ve que a pesar de que toma las imagenes de otra librería, el funcionamiento es el mismo que el del Faker común.

  • H. Javier Peláez

    H. Javier Peláez hace 1 año

    Hola Victor. En Laravel 9 no se descargan las imágenes con Faker. Ni siquiera usando los códigos que pusiste en You Tube. Un abrazo.

     

    • Victor Arana Flores hace 1 año

      Hola Javier, lee los comentarios fe YouTube, ahí colocaron la solución para Laravel 9 hace poco