Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2005, 16:44
Avatar de KarenFerreira
KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 87
Antigüedad: 19 años, 1 mes
Puntos: 2
Pregunta Problemas con el codigo

Hola a todo aquel que lea este mensaje, y gracias por su ayuda si me puede colaborar.
Estoy haciendo un portal que recibe archivos y los almacena en un servidor, el servidor solo recibe archivos con nombres de maximo 8 caracteres de extension, por lo cual los que me envian muy largos debo renombrarlos, puedo recibir maximo 5 archivos a la vez, el codigo lo tengo listo pero hay una secuencia donde se queda pegado y al parecer es en uno de los ciclos que estoy haciendo, los campo archivo donde recibo lo que se va a enviar al servidor se llaman infile1, infile2, infile3, infile4 e infile5, yo realizo un conteo previo al codigo de renombrar o de ajustar el nuevo nombre porque el archivo aun no lo he renombrado, para saber cuantas caja archivo estan siendo utilizadas, ahora el bloque de codigo que tengo que no me esta funcionando es el siguiente:
si existe algo que no entiendan por favor me avisan, ok?
$m=0;
$cambiados=0;
$num=1;
$i=0;
if($cuentaarch>0)
{
while($num<=$cuentaarch)//acomoda los nombres de los archivos en un arreglo
{ //para acomodar los archivos con mas de 8 caracteres de extension en su nombre
$nombres[$i]=${"infile".$num."_name"};//se copia el nombre del archivo en un arreglo de nombres
echo $nombres[$i];
$j=0; //utilizo j para moverme caracter a caracter dentro de un nombre determinado
$k=0; //utilizo k para contar los caracteres que van hasta que aparece punto

while($nombres[$i][$j]!=".")//mientras que el caracter sea diferente de punto
{
echo "entra una";
$k++;//aumente k
$j++;//mueva j
}

if($k>=8)//k es mayor que el numero de caracteres permitidos para un nombre?
{ //si, entonces
$cambiados++;

for($m=0; $m<6; $m++)
{$copia[$i][$m] = $nombres[$i][$m];} //creo una copia de los primeros seis caracteres del archivo
$copia[$i][6]="_"; //asigno 2 caracteres de relleno para ajustar los ocho de máximo del nombre.
$copia[$i][7]=$i;
$m+=3;

while($m<12)
{
$copia[$i][$m] = $nombres[$i][$j]; //termina de copiar los ultimos cuatro caracteres de la extension del archivo
$m++;
$j++;
}
$m=0; //limpia la m, por si es necesario hacer el mismo tratamiento con otro archivo
}
else
$copia[$i] = $nombres[$i];//si tiene 8 o menos de ocho simplemente copio el nombre igual que como estaba
$i++; //aumento en uno la posicion del arreglo de nombres
$num++; //aumento en uno para avanzar al siguiente archivo recibido
}//regresa a completar el ciclo

espero que los comentarios sean claros y de antemano nuevamente gracias por su ayuda