Como crear una galería de fotos

Bien, una vez que hemos visto como se pueden guardar datos en un fichero de texto de forma simple nosotros crearemos un fichero que puede guardar el número de fotos jpg (numerofotosjpg.txt) y uno que nos guarde las fotos gif (numerofotosgif.txt). Ambos los inicializaremos a 0 para a partir de ahí contar uno si las fotos son jpg o gif, según los usuarios de nuestra página las vayan cargando. Por supuesto, solo dejaremos subir ficheros menores de 100Kb y rechazaremos aquellos que sean mayores.

if ((strpos($tipo_archivo,"gif") || strpos($tipo_archivo,"jpeg")) &&
     $tamano_archivo < 100000) {
     $archivocorrecto=1;
}

En caso de que todo esté correcto lo siguiente es determinar el tipo de archivo que es. Vamos por partes. Primero miramos si el archivo que se ha subido es jpg. En este caso abriremos el fichero contador de jpgs y obtenemos el número de fotos jpg que han sido subidas ($nfotos). Con este número copiaremos el fichero subido a la dirección $galeria."foto".$nfoto.".".$extension; esta operación hace que en el directorio destino se vayan grabando los ficheros foto1.jpg, foto2.jpg, foto3.jpg y así sucesivamente.

if ($archivocorrecto==1) {

   if (strpos($tipo_archivo,"jpeg")) {
      //Miramos el número de fotos gif
      //Ver o número que lle teño que dar á foto gif
      $archcontfotos="contfotosgif.txt";
      $fich=fopen($archcontfotos,"r");
      $nfotos=fread($fich,5);
      fclose($fich);
      $fich=fopen($archcontfotos,"w");
      $nfotos++;
      fwrite($fich,$nfotos);
      fclose($fich);

      //La extensión es GIF
      $extension="gif";
      //Irá a parar a la galería de GIFs
      $galeria=$galeria1;
}

Aclarar que $galeria será el directorio donde guardo las fotos (en este caso galeria/jpg/) y que $extensión será la extensión que aplique a la foto que grabe a posterior con el código que muestro a continuación:

if (copy($temporal,$galeria."foto".$nfotos.".".$extension)) {
    echo "<h2>$nombre_archivo ha sido transferido</h2>";
    echo "<a href='javascript:window.history.back()'> Volver atrás </a>";
}

Está claro que si el archivo no es jpg es "gif" y habrá que repetir el código para el gif.

Al final tendremos una carpeta galeria con dos subcarpetas, una carpeta jpg y otra con la carpeta gif. En ambas se guardarán fotos con el nombre fotoX.jpg y fotoX.gif. X será un número de foto desde el 1 hasta el último número insertado.

Espero que os salga. Un saludo.

El código completo del programa está aquí (Ver código)