Foros del Web » Programando para Internet » PHP »

distingir extenciones al subir archivo?

Estas en el tema de distingir extenciones al subir archivo? en el foro de PHP en Foros del Web. hola tengo un script que sirve para subir archivos (fotos) al servidor , como hago para que me distinga las extenciones(para que solo suba jpg ...
  #1 (permalink)  
Antiguo 10/02/2003, 23:15
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
distingir extenciones al subir archivo?

hola tengo un script que sirve para subir archivos (fotos) al servidor , como hago para que me distinga las extenciones(para que solo suba jpg o gif), esto como medida de seguridad , gracias....
  #2 (permalink)  
Antiguo 10/02/2003, 23:50
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Podrias usar
Código PHP:
strrchr($HTTP_POST_FILES['userfile']['name'], "."); 
Esto te devuelve todo lo que hay desde el ultimo . (punto) hasta el final, por lo que deberias compararlo con ".gif" o ".jpg" o bien ".jpeg".
Queda algo asi:
Código PHP:
$ext strrchr($HTTP_POST_FILES['userfile']['name'], ".");
if (
$ext == ".gif" || $ext == ".jpg" || $ext == ".jpeg") {
   
//Haces el upload
} else {
   
// No


Bueno, esa es una forma, pero lo mejor es conociendo el mime type del fichero. Tendrias que comparar la variable $HTTP_POST_FILES['userfile']['type'] cuando haces el upload de la imagen. Por ej si la fotito es GIF el mime type es "image/gif" o si es jpg es "image/jpeg".
Código PHP:
$type $HTTP_POST_FILES['userfile']['type'] ;
if (
$type == "image/gif" || $type == "image/jpeg" ) {
   
//Haces el upload
} else {
   
// No

Tambien puede ocurrir que cuando hagas el upload el navegador no te mande esta informacion, en ese caso tendrias que usar la funcion de abajo para averiguarla...
Código PHP:
$type mime_content_type ($HTTP_POST_FILES['userfile']['tmp_name']);

Cualquier cosa pone el codigo del upload entonces te ayudamos mejor...
Saludos!
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 00:40.