none
Mostrar todas las imagenes de un directorio en mi pagina web RRS feed

  • Pregunta

  • Hola a todos, tengo una solución en .Net la cual tiene una pagina que muestra mis imágenes, quisiera que en ella se muestren todas las imágenes de un directorio (carpeta), ya que son muchísimas no quisiera pasarme toda una vida referenciando con un img src="" a cada una de ellas quisiera hacerlo todo de una sola, ademas considerar la que los archivos seguirán agregándose. He leído foros con códigos que hacen en PHP pero no se como adaptarlo, normalmente lo hago así:

    <img src="http://www.deceroadoce.es/wp-content/uploads/2015/11/leopardo-museo-prehistoria-valencia.jpg" class="img-responsive" style="border-radius:10px;" width:300%; height:200%; />
      <img src=" http://jsequeiros.com/sites/default/files/imagen-cachorro-comprimir.jpg" class="img-responsive" style="border-radius:10px;" width:300%; height:200%; />

    pero lo que quisiera es no usar el src para cada imagen ya que como menciono son muchas y con la posibilidad que sigan aumentando, dejo el codigo PHP que encontre pero que aun no lo implemento, gracias.

    <?php
    echo "<h3>Index</h3>\n";
    echo "<table>\n";
    $directorio = opendir(".");
    while ($archivo = readdir($directorio))
       {
       $nombreArch = ucwords($archivo);
       $nombreArch = str_replace("..", "Atras", $nombreArch);
       echo "<tr>\n<td>\n<a href='$archivo'>\n";
       echo "<img src='./imagenes/carpeta.png' alt='Ver $nombreArch'";
       echo " border=0>\n";
       echo "<b>&nbsp;$nombreArch</b></a></td>\n";
       echo "\n</tr>\n";
       }
    closedir($directorio); 
    echo "</table>\n";
    ?>


    Juan Fernando


    sábado, 21 de abril de 2018 17:10

Todas las respuestas

  • Ese código php lo único que hace es recorrer la lista de ficheros en lado servidor, y por cada fichero incrustar en la página un <img> con la ruta del fichero. Esto mismo también lo puedes hacer en ASP.NET, pero el resultado, al igual que en php, es una página html llena de tags <img> y que por lo tanto ocasionará un enorme número de peticiones GET al servidor. Si quieres evitarte todas esas peticiones, puedes usar "data" para embeber los bytes de las imágenes dentro de la propia página, o procesar todas las imágenes en lado servidor para combinarlas en una imagen más grande y servir a la página esa única imagen.

    Pero si te vale con embeber los múltiples <img>, el código de .Net equivalente a tu ejemplo de php es más o menos así:

    using System.IO;
    ...
    DirectoryInfo di = new DirectoryInfo("tuCarpeta");
    var ficheros = di.GetFiles();
    foreach (FileInfo fi in ficheros)
    {
        Response.Write(string.Format("<img src='http:..../{0}' alt='Ver {0}' />", fi.Name));
    }


    sábado, 21 de abril de 2018 20:08
  • Ese código php lo único que hace es recorrer la lista de ficheros en lado servidor, y por cada fichero incrustar en la página un <img> con la ruta del fichero. Esto mismo también lo puedes hacer en ASP.NET, pero el resultado, al igual que en php, es una página html llena de tags <img> y que por lo tanto ocasionará un enorme número de peticiones GET al servidor. Si quieres evitarte todas esas peticiones, puedes usar "data" para embeber los bytes de las imágenes dentro de la propia página, o procesar todas las imágenes en lado servidor para combinarlas en una imagen más grande y servir a la página esa única imagen.

    Pero si te vale con embeber los múltiples <img>, el código de .Net equivalente a tu ejemplo de php es más o menos así:

    using System.IO;
    ...
    DirectoryInfo di = new DirectoryInfo("tuCarpeta");
    var ficheros = di.GetFiles();
    foreach (FileInfo fi in ficheros)
    {
        Response.Write(string.Format("<img src='http:..../{0}' alt='Ver {0}' />", fi.Name));
    }


    Hola gracias por la informacion, digité codigo en default.aspx.cs y me muestra el siguiente error:


    Juan Fernando

    sábado, 21 de abril de 2018 20:34
  • Tienes mal puesto el nombre del directorio. Has puesto únicamente "img", con lo que lo intenta encontrar por debajo del CurrentDirectory, que en este caso resulta ser la carpeta del IIS Express, y claro, ahí no existe una subcarpeta "img". Cuando uses nombres de carpeta en una aplicación web, usa siempre rutas absolutas, no relativas. Si es necesario, puedes usar Server.MapPath para que te convierta una ruta relativa (al estilo web) en una ruta absoluta de tipo "C:\...".
    domingo, 22 de abril de 2018 6:04
  • yo tambien tengo ese problema per en mi caso no me carga las imagenes, es decir, me carga pero solo aparece "imagen1.jpg" no la imagen en si

    domingo, 17 de noviembre de 2019 3:00
  • Típicamente cuando pasa eso, es decir, que se ve el nombre en lugar de procesarse el nombre, indica que está mal escrito el tag: faltan o sobran comillas, o está fuera de orden, o algo por el estilo.
    domingo, 17 de noviembre de 2019 7:39