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

159
Vistas
obtener una imagen con la condición if en laravel 5.4

Intento imprimir una imagen cargada por el usuario en Laravel 5.4. Utilizo una condición if y si el usuario no carga ninguna imagen, se muestra la imagen predeterminada, pero mi código fuente de alguna manera no imprime nada. Este es el código que uso:

 @if (File::exists($post->image)) { echo "<img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" />"; } else { echo "<img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" />"; } @endif

Actualizar:

Trato de usar este código:

 @if (File::exists(public_path("asset/uploads/".$post->image))) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif

Y el resultado ahora estoy obteniendo:

si utilizo asset/uploads O assets/uploads if todas las imágenes vuelven a no tener imagen, incluso si tienen una imagen. si utilizo uploads if las publicaciones con imágenes se muestran pero otras no muestran imágenes y la URL que obtendré para ellas es url.dev/uploads en lugar de url.dev/images/no-image.png .

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

File::exists() comprobará la ubicación física del archivo en el disco duro. Por lo tanto, debe usar la ruta real al archivo.

 @if (File::exists(public_path("assets/uploads/".$post->image))) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif

Verifique que la ruta generada por el método `public_path' sea correcta para su archivo.

Actualización: gracias a linktoahref, resulta que el código de su hoja también es incorrecto. Corregido aquí.

File::exists funciona igual que file_exists de php, que devolverá verdadero incluso si busca un directorio, ahora lo que sucede aquí es que para algunas publicaciones, la imagen es nula, lo que hace que la ruta sea un directorio.

Utilice este código en su lugar.

 @if ($post->image && File::exists(public_path("uploads/".$post->image))) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif
over 4 years ago · Santiago Trujillo Denunciar

0

Estás mezclando php sin procesar y plantillas de blade juntas, ya sea que te quedes con el código de php sin procesar o la sintaxis de plantillas de blade

Entonces seria lo siguiente en blade

 @if (File::exists($post->image)) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif

O use php sin procesar como

 <?php if (File::exists($post->image)) { echo "<img src=". asset('uploads/' . $post->image) . " alt=" . $post->title . " />"; } else { echo "<img src=". asset('images/no-image.png') . " alt=". $post->title ." />"; } ?>
over 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