Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/01/2010, 07:16
Avatar de arielcasanova
arielcasanova
 
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: ¿como scanear una carpeta y cargar sus archivos en una db?

Bueno, mientras pienso cómo solucionarlo, lo dejo planteado por si a alguno se le ocurre algo mejor, antes que a mí. El tema es que la variable (array) $file, si es una carpeta, le digo que entre y la scanee, pero no sé cómo hacer para que no siga siendo $file, sino $dir. Porque luego me inserta como registro un directorio, cuando en realidad debe insertar sólo los archivos.

Lo que hice fue esto

Código:
		<form action="scan2.php" method="get">
<p>Primero copie la carpeta dentro de la carpeta &quot;fotos&quot;. El nombre de la carpeta ser&aacute; asignado como nombre de la categor&iacute;a. </p>
<p>Ingrese el nombre de la carpeta a scanear: 
  <input type="text" name="carpeta" />
</p>
<p><input type="submit" name="Submit" value="Scanear"/></p>
</form>

<? }

else
{


$the_array = Array();
$handle = opendir("../fotos");
while (false !== ($file = readdir($handle))) {
   if ($file != "." && $file != "..") {
   $the_array[] = $file;
   }
   
if (is_dir($file))
{
$handle = opendir("../fotos/$file");
while (false !== ($file = readdir($handle))) {
   if ($file != "." && $file != "..") {
   $the_array[] = $file;
   }

}
closedir($handle);
sort ($the_array);
foreach($the_array as $val){

/*SEPARAR FRAGMENTOS ARCHIVO*/



    list($complejidad,$galeria,$nombre) = explode("-",$val);
switch ($complejidad)
{
case "A":
$complejidadn=1;
break;
case "B":
$complejidadn=1.5;
break;
case "C":
$complejidadn=2;
break;
case "D":
$complejidadn=2.5;
break;
case "E":
$complejidadn=3;
break;
}
if (copy( "../fotos/$carpeta/$val", "../fotos/$val"))
{
unlink("../fotos/$carpeta/$val"); 
}

$sql="insert into tattoos_tattoos (imagen, galeria, nombre, complejidad)
values ('$val', '$galeria', '$nombre', '$complejidadn')";
if ($result= mysql_query($sql, $conexion))
{ echo $sql."<br/>"; }

}

		$sql = "SELECT distinct galeria FROM tattoos_tattoos"; 
		$result = mysql_query($sql, $conexion); 
		if ($row = mysql_fetch_array($result)){ 
		mysql_field_seek($result,0); 
		do { 
		$galeria=$row['galeria'];
		
			$sqlar="insert into tattoos_galerias (imagen, nombre)
			values ('nofoto.jpg', '$galeria')";
			$resultar= mysql_query($sqlar, $conexion);

		}
		while ($row = mysql_fetch_array($result)); 
		} 
		


}   


}
closedir($handle);
sort ($the_array);
foreach($the_array as $val){

/*SEPARAR FRAGMENTOS ARCHIVO*/



    list($complejidad,$galeria,$nombre) = explode("-",$val);
switch ($complejidad)
{
case "A":
$complejidadn=1;
break;
case "B":
$complejidadn=1.5;
break;
case "C":
$complejidadn=2;
break;
case "D":
$complejidadn=2.5;
break;
case "E":
$complejidadn=3;
break;
}
if (copy( "../fotos/$carpeta/$val", "../fotos/$val"))
{
unlink("../fotos/$carpeta/$val"); 
}

$sql="insert into tattoos_tattoos (imagen, galeria, nombre, complejidad)
values ('$val', '$galeria', '$nombre', '$complejidadn')";
if ($result= mysql_query($sql, $conexion))
{ echo $sql."<br/>"; }

}

		$sql = "SELECT distinct galeria FROM tattoos_tattoos"; 
		$result = mysql_query($sql, $conexion); 
		if ($row = mysql_fetch_array($result)){ 
		mysql_field_seek($result,0); 
		do { 
		$galeria=$row['galeria'];
		
			$sqlar="insert into tattoos_galerias (imagen, nombre)
			values ('nofoto.jpg', '$galeria')";
			$resultar= mysql_query($sqlar, $conexion);

		}
		while ($row = mysql_fetch_array($result)); 
		} 
		


}
¿Es muy desordenado? tengo que hacer más pruebas, pero aparentemente, entró en cada directorio; sólo faltaría utilizar otro nombre de variable pero no veo en donde ponerlo.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar