11/01/2010, 07:16
|
| | | Fecha de Ingreso: octubre-2004 Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes 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 "fotos". El nombre de la carpeta será asignado como nombre de la categorí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. |