Foros del Web » Programando para Internet » PHP »

validacion subir archivos

Estas en el tema de validacion subir archivos en el foro de PHP en Foros del Web. Tengo un problema: algunas veces me deja subir archivos PDF, otras veces no. Aqui el codigo de validacion. Que puede ser el problema? Con los ...
  #1 (permalink)  
Antiguo 23/02/2011, 04:38
 
Fecha de Ingreso: noviembre-2010
Ubicación: Telde, Gran Canaria
Mensajes: 15
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta validacion subir archivos

Tengo un problema: algunas veces me deja subir archivos PDF, otras veces no. Aqui el codigo de validacion. Que puede ser el problema? Con los otros archivos no hay problemas.

// VALIDAR PESO DEL ARCHIVO. LIMITAR SUBIDA POR PESO
// LIMITAMOS A 30000000KB
$kiloBytes = $tamanoBytes/1024; // esto nos da la cantidad de kb
if($kiloBytes > 30000000){
echo "El archivo supera los 30000000 KB <br/>";
exit;
sleep(2);
}

// VALIDAR POR TIPO DE ARCHIVO.
// COMPROBAMOS LA EXTENSIÓN DEL ARCHIVO SÓLO ADMITIMOS TXT, PDF, HTML, ZIP
if($tipoFile == "text/plain" || $tipoFile == "application/pdf" || $tipoFile == "text/html" || $tipoFile == "application/zip"
){
echo "Tipo de documento correcto <br/>";
}
else{
echo "Archivo no es del tipo .pdf, .txt, .html, .zip, <br/><br/>";
echo '<a href="subir_archivo.php" title="Ir la página anterior">Volver</a>';

exit;
}
// LE ASIGNAMOS UN NOMBRE DE EXTENSIÓN A LOS ARCHIVOS GRÁFICOS
switch ($tipoFile)
{
case 'text/plain':
$ext = ".txt";
break;

case 'application/pdf':
$ext = ".pdf";
break;

case 'text/html':
$ext = ".html";
break;

case 'application/zip':
$ext = ".zip";
break;
}
  #2 (permalink)  
Antiguo 23/02/2011, 07:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: validacion subir archivos

Hola,
No veo el código completo, donde está la función para subir el archivo, ni el formulario con el nombre del input, pero te puedo ayudar en algo creo.

Codigo php:
Código PHP:

$archivo 
$_FILES['file']['tmpname']:
$tipoFile $_FILES['file']['type']:
$directorioagrabar "........................";

if(
$tipoFile == "text/plain" || $tipoFile == "application/pdf" || $tipoFile == "text/html" || $tipoFile == "application/zip"){

   if(
move_uploaded_file($archivo1$directorioagrabar){
       echo 
"Se ha grabado correctamente el archivo";
   }else{
       echo 
"Hubo un error al grabar el archivo";
   }

}else{

   echo 
"No es un tipo de archivo válido";


Eso sería algo básico.
Puedes también hacerlo con las extensiones de los archivos, por ejemplo *.doc, *.txt, *.jpg etc.
Pero para ello tendrías que coger el $_FILES['file']['name'] y sustraer una parte del nombre con las funciones strpos() para detectar el "." del nombre y luego substr() para sustraer la parte de la extensión del archivo.

Ojala te haya ayudado algo.
Un saludo.
  #3 (permalink)  
Antiguo 23/02/2011, 14:01
 
Fecha de Ingreso: noviembre-2010
Ubicación: Telde, Gran Canaria
Mensajes: 15
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: validacion subir archivos

Gracias tonysanrusso,

no puso todo el codigo. Lo que explicas lo tengo puesto en codigo. Me devuelve mensaje con nombre, nombre_ temp, peso en Kb etc. Cuando subo .txt, .html o.zip a la carpeta, no hay problemas, estos archivos van a la carpeta, y en bbdd queda todo grabado correctamente.
El problema es pdf. Algunas veces todo va bien, algunas veces los datos se quedan grabados en bbdd, pero no ha subido archivo a carpeta. Pero major parte de veces, solo me devuelve mensaje que no es archivo correcto (que no es pdf). Y eso que los archivos SI son pdf.(Estoy probando todo en localhost)

Estoy desesperado....

Etiquetas: subir
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:26.