9. Subir imágenes

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


6 comentarios

Inicia sesión para comentar

Comentarios:

  • Enrique

    Enrique hace 1 mes

    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 6 meses

    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 6 meses

    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 9 meses

    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.

  • H. Javier Peláez

    H. Javier Peláez hace 10 meses

    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.

  • H. Javier Peláez

    H. Javier Peláez hace 10 meses

    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.