Hola buenas!
Soy más o menos nuevo en php, solo se cosas básicas y me encuentro frente un problema:
Tengo una intranet, y al pulsar en un enlace del menú me muestra una página web donde tengo 2 variables: una para mostrar la ruta y otra para mostrar el nombre del fichero. Esta página comprueba que el nombre del fichero existe en esa ruta, y si es correcto se puede proceder a importar ese archivo. Hasta aquí todo perfecto porque estaba ya echo.
Pues bien, en esa página tengo un enlace por si cualquier otro trabajador accede desde otro ordenador distinto con lo que la ruta de la intranet ya cambiaría. Este enlace de cambiar valores llama a una ventana aparte echa en javascript que me muestra el contenido del disco duro (un explorador de archivos casero). El problema es el siguiente: quiero que al pinchar en un FICHERO en la ruta donde se encuentre dicho fichero se me guarden en una variable la ruta y en otra el nombre del fichero. Al PINCHAR sobre ese fichero además de guardarse esas variables quiero que se me asignen a la página original que he mencionado antes de importar, con la ruta y el nombre del fichero cambiados para que compruebe si existe y pueda importarlo (lo de importar ya está echo). No se si me he explicado con detalle, si quieren más información se la daré sin problemas.
Este es el código que tengo, mando solo la parte del explorador para que me digan lo de las variables y demás que he mencionado. Otra cosa, tengo el problema de que al meterme en un directorio con espacios por medio lo pilla pero al volver no, si tambien me podrian ayudar con eso se lo agradecería
<?
$default_dir="C:"; //indicamos el directorio donde inicia el explorador
echo "EXPLORADOR DE ARCHIVOS<br><br>";
if(!file_exists($default_dir)) //verificamos que existe el directorio
{
echo "<br>Error... El directorio no existe. Configura bien tu variable ".$default_dir." ...";
}
else
{
//TRAMO DE VALIDACION
if(!isset($_GET['dir'])) //valor pasado por la URL, si esta vació, asignamos el directorio por default
{
$dir=$default_dir;
}
else
{
if(!file_exists($_GET['dir'])) //si nos pasan un valor comprobamos si existe, si no existe ponemos el default
{
$dir=$default_dir;
}
else
{
$dir=$_GET['dir']; //si existe, lo asignamos...
}
}
$dp=opendir($dir); //abrimos el directorio
while($file=readdir($dp)) //hacemos un ciclo para guardar los nombres de los directorios y archivos que se tienen en el directorio actual
{
$filenames[]=$file;
}
sort($filenames); //ordenamos los directorios alfabéticamente
for($i=0;$i<count($filenames);$i++) //hacemos un ciclo para ir mostrando el contenido del directorio
{
$file=$filenames[$i];
//comprobamos si la variable dir es igual al directorio por defecto y ademas PHP al abrir un directorio pone los puntos (./ y ../ que sirve para ir al directorio raíz o uno mas abajo) pero como comparamos que la variable dir sea igual al default entonces no hay ni directorio raís (porque no encontramos en él) ni subdirectorios entonces mandamos continue que se regresaría al ciclo del for
if($dir==$default_dir && ($file=="."||$file==".."))
continue;
//cuando comprobamos que la variable dir no es el default pero recordamos que php manda el ./ lo vamos a omitir, por lo que con el continue regresamos al ciclo del for
if(is_dir("$dir/$file")&&$file==".")
continue;
if(is_dir("$dir/$file")) //comprobamos si es un directorio, si lo es, tenemos dos casos que sea el ../ que sería para bajar un nivel o es un directorio fisico
{
if($file=="..") // si son ../ regresamos un nivel
{
$current_dir=basename($dir);
$parent_dir=ereg_replace("/$current_dir$","",$dir);
echo "<a href=".$_SERVER['PHP_SELF']."?dir=$parent_dir>$file/</a><br>";
}
else //de lo contrario mostramos el nombre del directorio y agregamos su url
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?dir=".$dir."/".$file."\">$file/</a><br>";
}
}
else //si no es un directorio, es un archivo, lo mostramos con su url
{
echo "<a href=$dir/$file>$file</a><br>";
if ($file==" ")
{
$auxruta=$dir."/";
$auxnombre=" ";
}
$auxruta=$dir."/";
$auxnombre=$file;
}
}
}
echo "<br>"."<b>Ruta Fichero: </b>".$auxruta;
echo "<br>"."<b>Nombre Fichero (Facturas): </b>".$auxnombre;
?>
Otra cosilla y perdón por las molestias. Al pinchar sobre un fichero además de guardarse las variables se tiene que cerrar la ventana en javascript que tengo y luego en la ventana original de importación mostrarme la ruta y el nombre del fichero refrescadas con la misma dirección y nombre que la del explorador.
Gracias