Hola, presento una aplicación optenida de varios scripts de la red, adaptados por mi, Javier Rojas, y con la colaboración de GatorV del foro de php de
www.forosdelweb.com, sin su ayuda no hubiera solucionado los problemas que me surgian en la aplicación, Tambien mis agradecimientos a Carlojas, que tambien colaboro con su sabiduria, Y a Okram que puso la guinda final para forzar la descarga de los archivos.
La aplicación consiste en varios scripts, los cuales te permiten:
· Cargar archivos a un directorio de tu web
· Guardar la ruta al directorio y la información que desees del archivo, en una Base de datos, en este caso MySQL
· Listar el contenido de archivos paginados en funcion del numero de resultados
· Y el ultimo script que permite la descarga del archivo.
Empezamos por configurar la tabla de la base de datos, archivo descargas.sql
Descargas.sql
CREATE TABLE `archivos` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(120) NOT NULL,
`description` varchar(250) NOT NULL,
`ruta` varchar(100) NOT NULL,
`tipo` varchar(50) NOT NULL,
`size` int(50) NOT NULL,
PRIMARY KEY (`id`)
Ahora el codigo que procesa la carga de archivos a una carpeta
que ya hemos creado en el hosting o en local, con su formulario.
Código PHP:
<?php
//guardar como subir_archivos.php
//Aplicacion por Javier Rojas de www.tuboolar-web.com con la inestimable ayuda de GatorV
if (isset($_POST['submit'])) {
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
// me verifica haya sido cargado el archivo
$ruta_destino = "../cevit/archivos/";
$namefinal= trim ($_FILES['fichero']['name']); //linea nueva devuelve la cadena sin espacios al principio o al final
$namefinal= ereg_replace (" ", "", $namefinal);// linea nueva devuelve la cadena sin espacios entre palabtas
$uploadfile= $ruta_destino . $namefinal;
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $uploadfile)) { // se coloca en su lugar final
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$ruta_destino . $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";
//conectamos a la base de datos para almacenar los datos y la ruta del archivo
mysql_connect('localhost','Tu_user','Tu_password')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
$nombre_archivo = $_POST["nombre_archivo"];
$description = $_POST["description"];
$query = "INSERT INTO archivos
VALUES (0,'$nombre_archivo','$description' , '".$_FILES['fichero']['name']."','".$_FILES['fichero']['type']."', '".$_FILES['fichero'] ['size']."')";
mysql_query($query) or die(mysql_error());
echo "El archivo '".$nombre_archivo."' ha sido registrado de manera satisfactoria.<br />";
}
}
}
// A continuación el formulario
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
Archivo: <input name="fichero" type="file" size="150" maxlength="150">
<br> Nombre: <input name="nombre_archivo" type="text" size="70" maxlength="70">
<br> Descripcion: <input name="description" type="text" size="100" maxlength="250">
<br>
<input name="submit" type="submit" value="Upload!">
</form>
</body>