Tengo un problema con el desarrollo de una web, os comento lo que necesito:
El caso es que quiero hacer una web para subir y bajar archivos de un servidor. La estoy programando en html y php. He conseguido tanto subir como bajar UN archivo cada vez, pero lo que quiero es tener la posibilidad de subir archivos en bloque y descargarlos también en bloque (varios a la vez).
He visto soluciones como la de permitir que un usuario pueda seleccionar varios archivos con distintos botones de "examinar" (al estilo de como google agrega archivos adjuntos a un mensaje), pero esa solución no me sirve. Lo que yo quiero concretamente es un botón que al pulsarlo me aparezca una ventana de windows tipo explorador (como la que aprece cuando se pone en un form un elemento file) pero que me deje seleccionar varios archivos para así poder descargarlos después todos de una vez.
Espero que alguien me pueda ayudar. Como ayuda dejo aquí el código que tengo para subir y descargar ficheros:
Código HTML:
/*Código del archivo update.html*/ <HTML> <BODY bgcolor="#E5E5E5"> <form action="upload.php" method="POST" enctype="multipart/form-data"> <input name="TAMANIO" type="hidden" value="600000000"> Introduce el fichero a subir: <input type="file" name="fichero"><br><br> <input name="bEnviar" type="submit" value="Subir"> </form> </BODY> </HTML>
Código PHP:
/*Código del archivo update.php*/
<HTML>
<BODY bgcolor="#E5E5E5">
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input name="TAMANIO" type="hidden" value="600000000">
Introduce el fichero a subir:
<input type="file" name="fichero"><br><br>
<input name="bEnviar" type="submit" value="Subir">
<?PHP
$fichero = $_FILES["fichero"];
if ($_POST["TAMANIO"]>$_FILES["fichero"]["size"]) {
echo "<br><font color=\"#FF0000\" align=\"center\">El fichero se ha subido al servidor.</font>";
copy ($_FILES["fichero"]["tmp_name"],$_FILES["fichero"]["name"]);
}
else {
echo "<br><p color=\"#FF0000\"> El fichero es demasiado grande</p>";
}
?>
</form>
</BODY>
</HTML>
Código PHP:
/*Código del archivo download.php*/
<?php
$fichero = "desc.jpg";
$mimeType = "application/jpg";
//Si el navegador es Explorer u Opera cambiamos el tipo de cabecera
if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 5') || strpos($_SERVER['HTTP_USER_AGENT'],'Opera 7'))
{
$mimeType = "application/x-download";
}
//Se genera la cabecera
header("content-disposition: attachment; filename=desc.jpg");
header("content-type: " . $mimeType);
header("content-length: " . filesize($fichero));
//Se env’a el archivo al navegador
readfile($fichero);
?>