Foros del Web » Programando para Internet » PHP »

Validación de Upload

Estas en el tema de Validación de Upload en el foro de PHP en Foros del Web. Hola. Si alguien me puede ayudar se lo agradecere mucho. Como puedo validar este script en PHP para que solo se puedan subir determinados archivos ...
  #1 (permalink)  
Antiguo 31/03/2005, 09:08
 
Fecha de Ingreso: marzo-2005
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Validación de Upload

Hola.

Si alguien me puede ayudar se lo agradecere mucho.

Como puedo validar este script en PHP para que solo se puedan subir determinados archivos (Por ejemplo .jpg) y que me mande un mensaje de error si no corresponde al tipo de archivo, y es posible limitar el tamaño del archivo...?

Gracias....

-----------------------------------------------------------------------
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center"><img src="Top.png" width="747" height="112"></div></td>
</tr>
<tr>
<td><div align="center"><img src="xbeatPanel.png" width="809" height="603">
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="Buscar" />
<input type="submit" name="submit" value="Subir Archivo" />
</form>
<?
$destino = 'Singles';
copy($_FILES['file']['tmp_name'], $destino.'/'.$_FILES['file']['name'])
?>
</div></td>
</tr>
<tr>
<td><div align="center"></div></td>
</tr>
</table>
</body>
</html>
  #2 (permalink)  
Antiguo 31/03/2005, 09:28
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
En primer lugar deberías actualizar este script, en lugar de copy deberías usar move_uploaded_file, porq sino en algún momento vas a caerte del mapa tecnológico (es decir subiras la página a un server q tenga lo último y te preguntarás porq nada funciona).
Para validar puedes usar algo así
$imagen = $_FILES["file"];
if(substr($imagen,-3) == "JPG" || substr($imagen,-3) == "jpg" || substr($imagen,-4) == "JPEG"){
move_upload_file($_FILES['file']['tmp_name'], $destino.'/'.$_FILES['file']['name']);
echo "El archivo fue subido correctamente";
}else{
echo "No se admite este tipo de archivo, solo formato JPEG and GIF";
}
Saludos
__________________
Dios dira que esto no es justo, pero lo sera...
  #3 (permalink)  
Antiguo 31/03/2005, 17:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Saludos sebtev... coincido contigo en el hecho de actualizar en script... pero quisiera hacer una mención respecto a el tuyo:

Veo que para validar los archivos lo hace spor su extención... temo que esto no es del todo seguro, pués la extención puede ser cambiaba y el archivo puede ser de otro tipo.. incluso podrías tener un archivo.exe.jpg y tu script lo tomaria como válido....

Entonces creo una mejor forma de validar archivos es por su tipo... y esta se optiene mediante $_FILES['archivo']['type'];

http://mx.php.net/manual/es/features...ad.post-method

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 31/03/2005, 17:20
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
Tienes razón jam1138, es más seguro así.
Saludos
__________________
Dios dira que esto no es justo, pero lo sera...
  #5 (permalink)  
Antiguo 11/05/2006, 09:33
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
El asunto es que con $HTTP_POST_FILES['userfile']['type'] no siempre funciona, porque depende de si el navegador lo pasa o no.

Es decir, en unas partes puede funcionar y en otras no.

Qué otro método se podria usar??
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
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 11:34.