Tengo un pequeño problema al intentar leer archivos desde php (todo esto en local, fase de testeo)
Os comento, tengo un script en php que al crear un usuario en la BD crea su correspondiente carpeta en el server donde se irán volcando archivos de consulta.
Código:
Despues uso una clase de actionscript, llamada FileReference, para subir archivos a la carpeta del cliente logeado. FileReference sube los archivos mediante uploadFile.php:... $sqlClienteC="INSERT INTO cliente_consultoria(Login,Password,Nombre,Apellido1,Apellido2,Telefono,Email,Perfil,Ocupacion,Empresa,Curso) VALUES ('$login','$login2','$nombre','$apellido1','$apellido2','$tlfno','$email', '$perfil','$ocupacion','$empresa','$curso');"; $result=mysql_db_query($basedatos, $sqlClienteC, $link) or die (mysql_error()); $sqlRuta="SELECT * FROM cliente_consultoria WHERE ((Login='$login')AND(Password='$login2'));"; $resultRuta=mysql_db_query($basedatos, $sqlRuta, $link) or die (mysql_error()); $rowRuta=mysql_fetch_row($resultRuta); $ruta1 = "../../documentos/Consultoria/".$rowRuta[0]; echo $ruta1; mkdir ($ruta1, 0755, true); ...
Código:
Los archivos se suben perfectamente, sin ningún tipo de problemas.<?php session_start(); $idCliente = $_SESSION['idCliente']; $uploadDir = './'.$idCliente."/"; $uploadFile = $uploadDir . $_FILES['Filedata']['name']; move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile); chmod($uploadFile, 0755); ?>
Luego FileReference, mediante un método interno, realiza un listado de los archivos que contiene la carpeta, o sea, cuando subes un archivo, luego debe listartelo con los demás que ya hubiera dentro de la carpeta. Y aquí está el problema. Ese listado lo realiza otro script, list.php:
Código:
Utilizo nodos "ficticios" para ver desde una consola de flash los nodos que se les pasan desde el xml. Y con cualquier archivo, haya sido subido con el script anterior o pegado directamente desde un explorador, me canta que no es leible (is_readable = false).<?php session_start(); $fp2 = fopen("archivo.txt","w"); //abrimos el archivo para escritura fwrite($fp2, "Estoy escribiendo en un archivo!!!"); fclose($fp2); $idCliente=$_SESSION['idCliente']; $No=array(".","..","list.php","uploadFile.php"); $fp=opendir($idCliente); echo "<?xml version='1.0' ?".">"; echo "<files>"; if ($fp=opendir($idCliente)) { echo "<file name='Carpeta abierta' tamanio='9999' />"; }else{ echo "<file name='Imposible abrir carpeta' tamanio='9999' />"; } while (false!==($file=readdir($fp))){ if (is_readable($file)) { echo "<file name='Archivo ".utf8_encode($file)." abierto' tamanio='".filesize($file)."' />"; }else{ echo "<file name='Imposible leer archivo.".utf8_encode($file)."' tamanio='9999' />"; } if ((!in_array($file,$No))&&(is_readable($file))){ echo "<file name='".utf8_encode($file)."' tamanio='".filesize($file)."' />"; } } closedir($fp); echo "</files>"; ?>
No entiendo muy bien por que lo hace así. Se supone que el usuario que crea la carpeta, que sube los archivos y que los intenta leer es el mismo, ya que todo se realiza desde php. ¿Alguna pista? Alguien ve algo extraño.