Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

742
Vistas
LARAVEL - Visualización de imágenes de la carpeta de almacenamiento

Soy nuevo en Laravel y me preguntaba si alguien me puede ayudar con una simple carga de imágenes.

Tengo un formulario que le permite a un usuario crear un perfil y cargar un avatar para su perfil durante el proceso. Todo esto funciona perfectamente. Aquí está el código de mi controlador:

 if (request()->hasFile('avatar')) { $file = request()->file('avatar'); $file->storeAs('avatars/' . auth()->id(), 'avatar.jpg'); }

La imagen se guarda en storage/app/avatars/USER-ID/avatar.jpg

No estoy seguro de cómo mostrar la imagen de esta carpeta. He buscado soluciones, pero no puedo usar php artisan storage:link porque no es mi servidor. ¿Cómo hago esto sin usar el enlace de almacenamiento? ¿Puedo crear un enlace manualmente?

Si alguien pudiera explicarme una solución, ¡sería perfecto!

Solo pregunte si necesita fragmentos de código.

¡Gracias!

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Deberá acceder a los archivos protegidos mediante una ruta de los enchufes a un controlador que pueda acceder a los archivos y pasarlos a la vista.

También recomendaría usar la intervention/image del paquete, puede ser instalado por

composer require intervention/image

Vea a continuación para acceder a la imagen:

// Tu ruta en web.php

 // Public route to show user avatar Route::get('avatars/{id}/{image}', [ 'uses' => 'TheNameOfYourController@userProfileAvatar' ]);

// En su archivo de controlador. En este ejemplo según el nombre de lo que tenemos arriba sería userProfileAvatar()

 namespace App\Http\Controllers; use Illuminate\Http\Request; use Image; class TheNameOfYourController extends Controller { /** * Show user avatar * * @param $id * @param $image * @return string */ public function userProfileAvatar($id, $image) { return Image::make(storage_path() . '/avatars/' . $id . '/' . $image)->response(); } }

// La vista de su hoja para mostrar la imagen

 <img src="images/profile/{{ \Auth::user()->id }}/avatar.jpg" alt="{{ \Auth::user()->name }}">

Aquí hay algunas referencias, pero estas instancias van un paso más allá y guardan la ruta del archivo en la base de datos al cargar:

// Ejemplo de ruta

  • https://github.com/jeremykenedy/laravel-auth/blob/master/routes/web.php

// Ejemplo de controlador

  • https://github.com/jeremykenedy/laravel-auth/blob/master/app/Http/Controllers/ProfilesController.php

// Ver ejemplos

  • https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/profiles/show.blade.php

  • https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/profiles/edit.blade.php

  • https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/partials/nav.blade.php

about 4 years ago · Santiago Trujillo Denunciar

0

Bueno, si no tiene acceso al servidor para crear un enlace simbólico, debe crear una ruta que devuelva la imagen como respuesta.

Algo como eso:

 Route::get('storage/{filename}', function ($filename) { $path = storage_path('avatars/' . $filename); if (!File::exists($path)) { abort(404); } $file = File::get($path); $type = File::mimeType($path); $response = Response::make($file, 200); $response->header("Content-Type", $type); return $response; });
about 4 years ago · Santiago Trujillo Denunciar

0

Cree un enlace simbólico que conectará los directorios de storage/app y public/img , por ejemplo:

 ln -s /home/laravel/public/img /home/laravel/storage/app

Luego, solo use el asistente de asset() para generar un enlace:

 <img src="{{ asset('img/avatars/'.auth()->id().'/avatar.jpg') }}">
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda