Foros del Web » Programando para Internet » PHP »

retorno no funciona

Estas en el tema de retorno no funciona en el foro de PHP en Foros del Web. Hola a todos. Tengo un problemilla tonto: Código PHP: function  toUploadFile ( $formatos ,  $maxSize ,  $upPath ,  $tmpFile ,  $typeFile ,  $sizeFile ) {     global  ...
  #1 (permalink)  
Antiguo 17/05/2008, 12:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 135
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta retorno no funciona

Hola a todos. Tengo un problemilla tonto:

Código PHP:
function toUploadFile($formatos$maxSize$upPath$tmpFile$typeFile$sizeFile) {
    global 
$err00$err01$err02$err03$alert_upload;
    
    if (
is_array($formatos)) {
    
        foreach (
$formatos as $cl => $fo) {
            if (
strpos(strtolower($typeFile), strtolower($fo))===false) {} 
            
            
        else {
            if (
$sizeFile $maxSize) { $alert_upload $err02;return false; }
            if (
move_uploaded_file($tmpFile,$upPath)) return true;
                else { 
                    
$alert_upload $err03;return false
                     }
             }
        }
        echo 
'ha salido de foreach';
        
$alert_upload $err01;return false;
    
    } else { 
$alert_upload $err00;return false; }




Código PHP:
Llamo a esta funcion con:

if (
toUploadFile(array("jpeg","png"), $_POST[IMG_MAX_SIZE], $uploadfile$r[tmp_name], $r[type], $r[size])==false
        {
            
$alerta '<h1>'.$alert_upload.'</h1>';echo $alerta;
        } 

Entonce en la funcion toUploadFile() el fichero lo sube correctamente,
ya que la extension la encuentra en el array, pero en lugar de,
una vez subido el fichero, retornar de la funcion con TRUE, sigue el
codigo haciendo el echo 'ha salido de foreach';

No lo entiendo, alguien sabe .......

Gracias.
  #2 (permalink)  
Antiguo 17/05/2008, 14:32
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: retorno no funciona

yo modificaria el codigo de esta forma, el return lo coloco siempre al final y uno solo.

Código PHP:
function toUploadFile($formatos$maxSize$upPath$tmpFile$typeFile$sizeFile) {
    global 
$err00$err01$err02$err03$alert_upload;  
    if (
is_array($formatos)) {
        foreach (
$formatos as $cl => $fo) {
            if (
strpos(strtolower($typeFile), strtolower($fo))===false) {
                
// no hago nada
            
}else {
                if (
$sizeFile $maxSize) { 
                    
$alert_upload $err02;
                    
$sw false
                }
                if (
move_uploaded_file($tmpFile,$upPath)) {
                    
$sw true;
                }else{ 
                    
$alert_upload $err03;
                    
$sw false
                }
            }
        }
        
//echo 'ha salido de foreach';
        
$alert_upload $err01;
        
$sw =  false;
    }else{ 
        
$alert_upload $err00;
        
$sw false
    }
    return 
$sw;

suerte !!
__________________
~~[FiDeLio]~~
  #3 (permalink)  
Antiguo 17/05/2008, 15:08
pablasso
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: retorno no funciona

Si tu archivo si se esta subiendo, pero la función 'move_uploaded_file' te regresa falso, es que por algún problema de permisos, o de directorios inexistentes esta fallando, trata de resolver eso que si pones el return al final del script solo le estarás dando la vuelta al problema, no solucionandolo.
  #4 (permalink)  
Antiguo 18/05/2008, 05:29
 
Fecha de Ingreso: marzo-2007
Mensajes: 135
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: retorno no funciona

Ya se, el problema no estaba en la funcion. El caso es que
tenia dos <input type="file">


Uno era: <input type="file" name="media" value="" />

Y el otro: <input type="file" name="fichatecnica" value="" />



Envio formulario y en otro .PHP compruebo:

if (isset($_FILES['media'])) { }

if (isset($_FILES['fichatecnica'])) { }


Pero no se por que, haya seleccionado o no un fichero en el
formulario, $_FILES['media'] y $_FILES['fichatecnica']

siempre se encuentran programadas ( o me da true la condicion).

No entiendo por que es esto.

Supuestamente, si no selecciono ningun fichero .......

if (isset($_FILES['fichatecnica'])) { }

....... no deberia ejecutarse la condicion, verdad ????


Gracias.
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 14:44.