Foros del Web » Programando para Internet » PHP »

Busqueda en carpeta

Estas en el tema de Busqueda en carpeta en el foro de PHP en Foros del Web. Saludos, espero que me puedan ayudar, este scrip, se supone que busca dentro de una carpeta y devuelve los archivos que necesito y los guarda ...
  #1 (permalink)  
Antiguo 02/08/2003, 15:44
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años, 6 meses
Puntos: 8
Busqueda en carpeta

Saludos, espero que me puedan ayudar, este scrip, se supone que busca dentro de una carpeta y devuelve los archivos que necesito y los guarda en una tabla, para despues imprimirlo, pero no pasa nada, espero me puedan ayudar.
Código PHP:
<?php
    $con
=mysql_connect("localhost","user","pw") or die(mysql_error());
    
mysql_select_db("database",$con) or die(mysql_error());
    
    
$SQL="SELECT * FROM kardex WHERE cod_kardex='".$cod_kardex."'";
    
$consulta=mysql_query($SQL,$con) or die(mysql_error());
    
$obj=mysql_fetch_object($consulta) or die(mysql_error());
    
    
$imagen=$obj->foto;
    
$imagen_sin_Ext=substr($imagen,0,6); // teniendo encuenta, q' el cod_kardex tiene solo 6 caracteres
    
$ruta="http://mak.com.pe/pictures/fotos";
        
$handle=opendir($ruta);
        while (
$file readdir($handle))
        {           
          
// con el nombre del archivo busco el . (punto)
          
$punto=strpos($file,".");
          
          
//Luego hago un substr hasta el la posicion del punto
          
$archivo=substr($file,0,$punto); 
          
// aqui se sabe el nombre del archivo
          // Ahora comparo el $archivo con $imagen_sin_Ext
          // 
         
if (strpos($archivo,$imagen_sin_Ext) != 0// devuelve 0 si no encontro nada
          
{
              
$SQLin="INSERT INTO foto_temp (cod_kardex,fototmp) VALUES ('$cod_kardex','$file')";
            
mysql_query($SQLin,$con) or die(mysql_error());           
          }    
        }
?>

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1">
<meta http-equiv="" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="50%" border="0" cellspacing="2" cellpadding="2">
  <tr bgcolor="#000099"> 
    <td width="50%"><div align="center"><strong><font color="#FFFFFF">cod_kardex</font></strong></div></td>
    <td width="50%"><div align="center"><strong><font color="#FFFFFF">foto</font></strong></div></td>
  </tr>
  <?php
  $SQLver
="SELECT * FROM foto_temp";
  
$con_ver=mysql_query($SQLver,$con);
  
  while (
$ob=mysql_fetch_object($con_ver)){
      echo 
"<tr>";
      echo 
"<td><font color=\"#000000\">$ob->cod_kardex</font></td>";
    echo 
"<td><font color=\"#000000\">$ob->fototmp</font></td>";
    echo 
"</tr>";
  }
  
?>
</table>
</body>
</html>
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 02/08/2003, 16:06
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
- Comprueba que tengas permisos de lectura sobre http://mak.com.pe/pictures/fotos. Si no los tienes, opendir() te devolvera 0
__________________
No tengo firma ahora... :(
  #3 (permalink)  
Antiguo 02/08/2003, 18:33
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años, 6 meses
Puntos: 8
le he dao permisos de 777, pero me sale el siguiente error
que opendir(http://www.mak.com.pe/pictures/fotos): failed to open dir: not implemented
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 02/08/2003, 18:43
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años, 6 meses
Puntos: 8
e probado con
Código PHP:
$ruta="../pictures/fotos";
$handle=opendir($ruta);
...
... 
pero nada, no se que anda mal
__________________
El aprendiz.
  #5 (permalink)  
Antiguo 02/08/2003, 19:01
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
antes de la version 4.2, seuo, opendir no podia abrir directorios fuera de su propia ruta, asi que con el segundo metodo deberia funcionar.

para descartar, si $handle devuelve un valor <> 0 entonces el directorio ha podido ser abierto, si no... pues, hasta alli llegue...
__________________
No tengo firma ahora... :(
  #6 (permalink)  
Antiguo 02/08/2003, 19:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usa preferentemente rutas absolutas .. no relativas como lo haces cuando usas http:// ...

Si te fijas .. el error que te dá es:
Cita:
You don't have permission to access /pictures/fotos/ on this server.
En sistemas *NIX (lease Linux, etc ..) el / indica el "root" (directorio raiz) .. Si usas un servicio de hosting "compartido" donde se te asigna "servidores virtuales" para tu www.tal.tal sitio .. ese "root" no es el de tu sitio .. sino el del serirvidor entero ..


Por poner un ejemplo .. El "servidor" tendría una estructura tipo:

/home/webs/unsitio.com/
/home/webs/otrositio.com/
/home/webs/eltuyo.com/pictures/fotos

La ruta absoluta marcada en negrita .. es lo que "no ves" normalmente (ni aunque accedas por FTP a tu sitio .. pues se te entrega un directorio "raiz" para tu sitio del cual no puedes "subir" ..). Para conocer esa ruta (path) .. donde tengas asignado tu directorio virtual en ese servidor .. Eso lo puedes obtener con la variable de servidor: DOCUMENT_ROOT ..

Quedaría:

Código PHP:
$ruta=$_SERVER['DOCUMENT_ROOT']."/pictures/fotos"
($_SERVER es válido para PHP 4.1.0 en adelante .. si usas versiones inferiores .. usa $HTTP_SERVER_VARS en lugar de lo propuesto ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.