laravel laravel-5 laravel-5.4

¿Cómo obtener avatar url que se almacenan en el directorio de almacenamiento utilizando laravel 5.4?



laravel-5 laravel-5.4 (1)

Quiero obtener la URL del avatar almacenado dentro del directorio de almacenamiento, estoy usando laravel 5.4.

En realidad estoy usando el siguiente método para cargar imágenes y obtener la url.

Subiendo imagen:

<input type="file" class="form-control" value="{{ old(''u_avatar'') }}" name="u_avatar" />

En el controlador

$UserModel->u_avatar = $request->file(''u_avatar'')->store(''avatars''); // Uploading Files properly in the storage/app/avatars

Obteniendo Imagen

Intenté seguir dos métodos para obtener las imágenes, pero ninguno de ellos funciona

Primer método

En el archivo de vista

<img src="{{ asset(''storage/app'') }}/{{ $User->u_avatar }}" class="img-responsive" /> // Not Working

Segundo método en el controlador

$User = UserModel::find($id); //For Image $path = asset(''storage/app/''.$User->u_avatar);// Not working

Me gustaría pedirle amablemente que me guíe estoy haciendo de manera correcta o no? En esta referencia, la persona está diciendo

el almacenamiento no es público No puede guardar archivos allí y luego crear enlaces web a ellos. Este hilo trata de poder usar laravel para interceptar la llamada de la imagen, obtenerla del almacenamiento privado y transmitir el archivo al cliente.

Entonces, ¿puede alguien cuál es la mejor manera de almacenar los archivos en laravel5.4 y cómo puede ponerse en forma adecuada? Me gustaría agradecer Gracias.


storage directorio de storage no es accesible desde la web, por lo que debe crear un enlace simbólico.

El disco público está destinado a los archivos que serán de acceso público. De forma predeterminada, el disco público usa el controlador local y almacena estos archivos en storage/app/public . Para hacerlos accesibles desde la web, debe crear un enlace simbólico desde public/storage a storage/app/public . Esta convención mantendrá sus archivos de acceso público en un directorio que se puede compartir fácilmente entre las implementaciones cuando se utilizan sistemas de implementación sin tiempo de inactividad como Envoyer.

Para crear el enlace simbólico, puede usar el storage:link Comando Artisan:

php artisan storage:link

Por supuesto, una vez que se ha almacenado un archivo y se ha creado el enlace simbólico, puede crear una URL para los archivos usando el asistente de recursos:

echo asset(''storage/file.txt'');

https://laravel.com/docs/5.4/filesystem#the-public-disk