Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/02/2013, 05:00
sinkolas
 
Fecha de Ingreso: noviembre-2012
Ubicación: Vigo
Mensajes: 9
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema al subir archivos

Hola Ipraetoriux,

De lo que me comentas, tengo todo validado. Tanto el peso de cada archivo, como las extesiones y la cantidad de archivos simultaneos.

El caso por lo que he ido comprobando, a veces el fichero que falla puede pesar 1 mega, 100k o cualquier otro tamaño, asi que descarte que el error fuese de tamaño ( Pedia al usuario que me reenviase el fichero a traves de Filezilla y comprobando el tamaño )

En cuanto a las extesiones solo permito JPG y PDF. Llegue a pensar un dia que podia ser por el nombre que tiene el usuario en el archivo, pero ahora los renombro cuando se suben y asi evito el posible problema de longitud de nombre.

Te muestro el codigo que tengo por que a lo mejor soy yo que me paso algo.
* Alguna de las validaciones se hacen a través de Javascript ( en este caso la validacion del tipo de archivo la valido con javascript y php

Código:
if(isset($_FILES['archivo']))
{
	foreach ($_FILES['archivo']['error'] as $key => $error) 
	{
		 $tipo = $_FILES['archivo']['type'][$key];
		 $contador = $contador + 1;
		 if($contador == 1)
		 {
			 $archivo_antiguo = $_FILES['archivo']['name'][$key];
		 }
		 if($contador != 1)
		 {
			 $archivo_antiguo .= " - " . $_FILES['archivo']['name'][$key];
		 }
				
		 if(strpos($tipo,"jpg") || strpos($tipo,"jpeg") || strpos($tipo,"JPG") || strpos($tipo,"JPEG"))
		 {
			 $archivo = $contador."_".$prefijo.".jpg";
		 }
		 if(strpos($tipo,"pdf"))
		 {
			 $archivo = $contador."_".$prefijo.".pdf";
		 }

		 if($contador == 1)
		 {
			$ficheros .= $archivo;
		 }
		 else
		 {
			 $ficheros .= " - " . $archivo ;
		 }
		 
		 if($error == UPLOAD_ERR_OK) // Compruebo si hay algun tipo de error
		 {
			 if(is_uploaded_file($_FILES["archivo"]["tmp_name"][$key]))
			 {
			          if(!move_uploaded_file($_FILES["archivo"]["tmp_name"][$key],$destino.$archivo))
				  {
				                header('location: direccion.php?op=3');
				  }
			}
			else
			{
				 header('location: direccion.php?op=3');
			}
		}
		else
		{
			 $ferror=fopen("files/".$_SESSION['s_username']. "/" .$prefijo."/errores.txt","a") or die("<script>jAlert('Error en la creación de resumen','Error fichero')</script>");
			 fputs($ferror,"\n --------------- Errores Fichero ---------------");
			 if(sizeof($_FILES['archivo']['name']) != $contador)
			{
				 if($error == UPLOAD_ERR_NO_FILE) // Si no se ha subido ningun tipo de fichero
				 {
					fputs($ferror,"\nFallo en la subida: No se ha subido el fichero: $contador - ". $_FILES['archivo']['tmp_name'][$key]." ");
				 }
				 if($error == UPLOAD_ERR_FORM_SIZE) // Si sobrepasa el tamaño especificado en el input de formulario
				 {
					fputs($ferror,"\nFallo en el tamaño: No se ha subido el fichero. $contador - ". $_FILES['archivo']['tmp_name'][$key]);
				 }
				 if($error == UPLOAD_ERR_PARTIAL) // Solo se subio parcialmente el fichero
				 {
					 fputs($ferror,"\nFallo en la subida 2: Se ha subido parcialmente el fichero. $contador - ". $_FILES['archivo']['tmp_name'][$key]);
				 }
				 if($error == UPLOAD_ERR_CANT_WRITE) // No se pudo escribir el archivo en disco
				 {
					 fputs($error,"\nFallo en la escritura: No se ha podido escribir el archivo en disco. $contador - ". $_FILES['archivo']['tmp_name'][$key]);
				 }
				 if($error == UPLOAD_ERR_INI_SIZE) // El tamaño supera al tamaño asignado en php.ini
				 {
					 fputs($ferror,"\nFallo en el tamaño: No se ha subido el fichero PHP.ini $contador - ". $_FILES['archivo']['tmp_name'][$key]);
				 }
			 }
			 fclose($ferror);
			 header('location: direccion.php?op=3');
 	            }
	} // End foreach
}
else
{
			header('location: direccion.php?op=3');
}
En cuanto a la modificacion del php.ini para el tiempo de ejecuccion de scripts y demás esta todo modificado y aumentado.

El caso es que al ser un error ocasional no entiendo el por que puede estar pasando.

Ultimamente me ronda por la cabeza que pueda ser un problema de conexion del usuario que al sufrir algun tipo de corte en su conexion haga que el archivo que se estaba subiendo en ese momento se corte y suba despues los demas.

Espero que me puedas ayudar o por lo menos si tienes alguna idea por donde puede ir encaminado el problema.

Un saludo y gracias de nuevo