en mi sistema, el usuario una vez que se registra con un determinado nombre, se crea en el directorio raíz del servidor (llamado módulos, en el cual se guardan todas las carpetas y archivos de la web) un directorio nuevo para ese usuario en concreto con el nombre que ha dado al registrarse. supongamos que el usuario se registra con el nombre de 'pedromanuel'. automáticamente, en el sistema se creará una carpeta llamada 'pedromanuel'.
este usuario, una vez validado su nombre de usuario y su password, podrá acceder a su carpeta y ver los archivos que previamente él mismo ha subido. así, este usuario accederá a su directorio 'pedromanuel'. esto lo hago así:
//////////////////////
Código PHP:
if(!isset($path))
{
$path = "modulos/$nombre";
}
////////////////////
una vez tenemos la ruta, accedemos al directorio y mostramos tanto los archivos como los subdirectorios que en él pudiera haber:
Código PHP:
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$fName = $file;
$file = $path.'/'.$file;
una vez tengo ya el acceso para leerlos, los pongo en cada campo.
así, en el campo 'nombre', el código que utilizo para obtener los nombres de los ficheros o subdirectorios es el siguiente:
Código PHP:
if(is_file($file))////si es un fichero
{
print"<a href='".$file."'>".$val."</a>";
}
if(is_dir($file))////si es un directorio
{
print "<a href='index.php?mod=10&path=$file'>$val</a>";
}
cuando se trata de ficheros, aparece al lado un campo llamado 'accion' que recoge una serie de opciones que hacer con el fichero, como son 'ver', 'renombrar' y 'descargar'.
bien. para ver el archivo, hacemos click en el enlace 'ver' que tiene de código:
Código PHP:
echo("<a href='".$file."' >Ver</a>");
$file=modulos/pedromanuel/ejemplo.jpg
//////////////////////////
pero ahora viene el jaleo.
cuando opto por la opción 'descargar', pincho en el enlace 'descargar' que tiene de código:
Código PHP:
echo ("<a href=descargar.php?id='".$file."' >Descargar</a>");
Código PHP:
("<a href=descargar.php?id='modulos/pedromanuel/ejemplo.jpg' >Descargar</a>");
Código PHP:
$id = $_GET['id'];
//conecto con la base de datos donde recojo los datos del archivo en cuestión
$cnx = mysql_connect("localhost", "user", "pass");
mysql_select_db("basededatos", $cnx);
//selecciono la tabla y digo que me muestre el nombre del documento (en este caso mostrará 'ejemplo.jpg' cuya ruta (almacenada en el campo 'ruta' de esa tabla) coincide con la variable $id recogida
$sql="SELECT documento FROM archinteg WHERE ruta='".$id."'";
$resultado=mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_array($resultado)) {
$documento = "".$row['documento']."";
//código para descargar
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition:attachment; filename=$documento");
readfile("$id");
}
respecto al último apartado, 'renombrar', este no hay forma. he leido las multiples opciones que hay en este foro y en otros pero no lo consigo.
por favor, me echáis un cable con estos temas? gracias.