Foros del Web » Programando para Internet » PHP »

no me reconoce las extensiones

Estas en el tema de no me reconoce las extensiones en el foro de PHP en Foros del Web. hola, espero que puedan ayudarme. Tengo los siguientes scripts este script es el encargado de subir las imagenes Código PHP: for( $i  =  0 ;  ...
  #1 (permalink)  
Antiguo 23/04/2011, 15:23
 
Fecha de Ingreso: marzo-2011
Mensajes: 32
Antigüedad: 13 años, 1 mes
Puntos: 1
Pregunta no me reconoce las extensiones

hola, espero que puedan ayudarme. Tengo los siguientes scripts

este script es el encargado de subir las imagenes
Código PHP:
for($i 0$i $cantImg$i++){
    
$file "file".+$i;
    
$tamano $_FILES [$file]['size'];
    
$destino "../noticias/".$bd_almacenar[1]."/".$bd_almacenar[2]."/".$bd_almacenar[0]."/src/";
    
$sep=explode('image/',$_FILES[$file]['type']); 
    
$tipo=$sep[1];
//-----Creacion de Nombre-----//
    
if($i == 0){
        
$cad "principal";
    }
    else{
        
$cad "imagen".+$i;
    }
    
    echo 
$_FILES[$file]['type'];
    
    if(
$tipo == "gif" || $tipo == "pjpeg" || $tipo == "bmp" || $tipo == "jpg" || $tipo == "jpeg" || $tipo == "JPG" || $tipo == "JPEG"){
        
move_uploaded_file $_FILES [$file]['tmp_name'], $destino.'/'.$cad.'.'.'jpg');
    } 
    else{
        echo 
"el tipo de archivo no es de los permitidos";
    }

el problema que tiene este script es que solamente me sube determinadas imágenes, por ejemplo puedo cargar tranquilamente imágenes .jpg. Pero a la hora de cargar imágenes con extensión .JPG (escrito con mayúsculas) no me lo reconoce, siendo que en la estructura if esta la opción JPG

los input file se crean de forma dinamica con javascript:

function actualizarCamposImagen(num_campos)
{
zona = document.getElementById('campos_carga_imagenes');
zona.innerHTML = "";
for(i = 0; i < num_campos; i++)
{
zona.innerHTML += '<input type="file" name="file'+i+'" size="40" /><br />';
}
}

desde ya muchas gracias
  #2 (permalink)  
Antiguo 23/04/2011, 16:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: no me reconoce las extensiones

lo mejor en estos casos es convertir a minúsculas o mayúsculas antes de comparar.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 23/04/2011, 16:17
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me reconoce las extensiones

El script tiene problemas de seguridad, para hacer lo que vos decis de que reconosca lo puesto en mayuscula es simple

Remplazas
$tipo=$sep[1];

por

$tipo=strtolower($sep[1]);


strtolower hace que pase toda la cadena a minuscula, creo que es mas facil utilizar foreach en esta ocacion y en name="fileN" pone name="file[]" esto lo que hace es automaticamente asignarle un numero y de esta forma se puede borrar / crear input sin alterrar a los anteriores/siguientes
  #4 (permalink)  
Antiguo 23/04/2011, 16:59
 
Fecha de Ingreso: marzo-2011
Mensajes: 32
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: no me reconoce las extensiones

Cita:
Iniciado por marcofbb Ver Mensaje
El script tiene problemas de seguridad, para hacer lo que vos decis de que reconosca lo puesto en mayuscula es simple

Remplazas
$tipo=$sep[1];

por

$tipo=strtolower($sep[1]);


strtolower hace que pase toda la cadena a minuscula, creo que es mas facil utilizar foreach en esta ocacion y en name="fileN" pone name="file[]" esto lo que hace es automaticamente asignarle un numero y de esta forma se puede borrar / crear input sin alterrar a los anteriores/siguientes
desde ya muchas gracias a ambos, pero tengo una duda con respecto a tu respuesta:

al cambiar name="fileN" por name="file[]", como tendria que buscar los archivos? tendria que hacer file['numero'] para poder acceder?
  #5 (permalink)  
Antiguo 23/04/2011, 19:09
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me reconoce las extensiones

Código PHP:
Ver original
  1. $numero= count($_FILES['s']['name']);
  2.                                 if($_FILES['s']['name'][0]==""){
  3.                                 die('no hay archivos');
  4.                                 }elseif($numero==1){
  5.                                 $nu=array(0);
  6.                                 }elseif($numero==2){
  7.                                 $nu=array(0,1);
  8.                                 }elseif($numero==3){
  9.                                 $nu=array(0,1,2);
  10.                                 }elseif($numero==4){
  11.                                 $nu=array(0,1,2,3);
  12.                                 }elseif($numero==5){
  13.                                 $nu=array(0,1,2,3,4);
  14.                                 }elseif($numero==6){
  15.                                 $nu=array(0,1,2,3,4,5);
  16.                                 }elseif($numero==7){
  17.                                 $nu=array(0,1,2,3,4,5,6);
  18.                                 }elseif($numero==8){
  19.                                 $nu=array(0,1,2,3,4,5,6,7);
  20.                                 }elseif($numero==9){
  21.                                 $nu=array(0,1,2,3,4,5,6,7,8);
  22.                                 }elseif($numero==10){
  23.                                 $nu=array(0,1,2,3,4,5,6,7,8,9);
  24.                                 }elseif($numero>10){
  25.                                 die('solo puedes subir 10 a la vez');
  26.                                 }
  27. foreach($nu as $f){
  28.             $archivo= $_FILES['s']['name'][$f];
  29.             $temporal= $_FILES['s']['tmp_name'][$f];
  30.             $tamano= $_FILES['s']['size'][$f];
  31. }

Ahi tenes restringible a 10 archivos
  #6 (permalink)  
Antiguo 25/04/2011, 20:56
 
Fecha de Ingreso: marzo-2011
Mensajes: 32
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: no me reconoce las extensiones

hola, te comento que ya encontré el problema, lo que pasa es que no me carga las imágenes con alta resolución, mi pregunta ahora es: ¿por que pasa esto?

desde ya gracias!, y disculpa las molestias! je
  #7 (permalink)  
Antiguo 25/04/2011, 21:03
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: no me reconoce las extensiones

Cita:
Iniciado por gabo_k756 Ver Mensaje
hola, te comento que ya encontré el problema, lo que pasa es que no me carga las imágenes con alta resolución, mi pregunta ahora es: ¿por que pasa esto?

desde ya gracias!, y disculpa las molestias! je
eso se debe a la directiva upload_max_filesize del php.ini por defecto limita a 2M (megabytes), debes aumentarla
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 25/04/2011, 22:40
 
Fecha de Ingreso: marzo-2011
Mensajes: 32
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: no me reconoce las extensiones

mucha, pero muchas! gracias!! y pensar que me estaba volviendo loco! je

Etiquetas: extensiones, imagenes
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 17:00.