¿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 desdepublic/storage
astorage/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'');