Foros del Web » Programando para Internet » PHP »

$_files[]

Estas en el tema de $_files[] en el foro de PHP en Foros del Web. Hola la entrada es porque tengo un inconveniente con $_FILES, tengo dos campos tipo file en un formulario, uno para subir imagenes y otro para ...
  #1 (permalink)  
Antiguo 12/07/2010, 09:31
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
$_files[]

Hola

la entrada es porque tengo un inconveniente con $_FILES, tengo dos campos tipo file en un formulario, uno para subir imagenes y otro para videos, ahora, el usuario puede subir imagen y video, o imagen o video, o ninguno, entonces hago una comparacion de si tienen algo los dos, que los guarde, si uno tiene y uno no que solo inserte el que tiene, pero cuando no tienen ninguno, siempre ejecuta la comparacion de si tiene uno o el otro y me inserta un valor vacio en mi base de datos, no se si esta mal mi sintaxis, por favor ayuda


$id=$GLOBALS['c']->sp("call sp_rep_inota('".$_POST['titulo']."','".$_POST['contenido']."',0,0,".$ideste.",0,1)");

********El codigo de la linea seria el unico a ejecutarse al no subir ningun file*******

if($_FILES['multe']['name']!='' && $_FILES['video']['name']!='')
{
for($j=0;$j<count($_FILES['multe']['name']);$j++)
{
$idf=$GLOBALS['c']->sp("call sp_rep_ifotos('".$_FILES['multe']['name'][$j]."','".$_POST['jpg']."')");
$ruta="../uploads/".$idf[0]['idf'].'.jpg';
move_uploaded_file($_FILES['multe']['tmp_name'][$j],$ruta);
$idr=$GLOBALS['c']->sp('call sp_rep_nxf('.$id[0]['idnota'].','.$idf[0]['idf'].')');
}
$idv=$GLOBALS['c']->sp("call sp_rep_ifotos('".$_FILES['video']['name'][$j]."','".$_POST['flv']."')");
$ruta="../uploads/".$idv[0]['idf'].'.flv';
move_uploaded_file($_FILES['video']['tmp_name'],$ruta);
$idr=$GLOBALS['c']->sp('call sp_rep_nxf('.$id[0]['idnota'].','.$idv[0]['idf'].')');
}

***********El codigo anterior hace la compracaion de si ambos tienen archivos**********




elseif(($_FILES['multe']['name']!='') && empty($_FILES['video']['name']))
{
for($l=0;$l<count($_FILES['multe']['name']);$l++)
{
$idf=$GLOBALS['c']->sp("call sp_rep_ifotos('".$_FILES['multe']['name'][$l]."','".$_POST['jpg']."')");
$ruta="../uploads/".$idf[0]['idf'].'.jpg';
move_uploaded_file($_FILES['multe']['tmp_name'][$l],$ruta);
$idr=$GLOBALS['c']->sp('call sp_rep_nxf('.$id[0]['idnota'].','.$idf[0]['idf'].')');
}
}


*****Ahora el de arriba es si uno u otro*********

Pero si no tiene ninguno aun asi lo hace y es lo que no quiero
  #2 (permalink)  
Antiguo 12/07/2010, 10:31
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 13 años, 6 meses
Puntos: 66
Respuesta: $_files[]

Prueba con este código(de las tres formas, los dos llenos, uno lleno uno vacio, los dos vacios) y nos muestras los resultados:

Código PHP:
<?php
if($_FILES['multe']['name']!='' && $_FILES['video']['name']!='')
{
echo 
'ejecutado primer if<br/>';
}
elseif((
$_FILES['multe']['name']!='') && empty($_FILES['video']['name']))
{
echo 
'ejecutado elseif <br/>';
}
else
echo 
'no se ejecutó nada<br/>';

var_dump($_FILES['multe']['name']);
echo
'<br/>'
var_dump($_FILES['video']['name']);
?>
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 12/07/2010, 10:44
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: $_files[]

Hola, segui tu consejo pero hace lo mismo, probe subiendo los dos, uno si y uno no, y ninguno, cuando subo los dos lo hace correctamente, al igual si subo uno u otro, pero cuando no subo ninguno siempre entra al else if.

Ahora, todas estas sintaxis estan dentro de otro if, ¿tendrá eso algo que ver?
  #4 (permalink)  
Antiguo 12/07/2010, 10:52
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 13 años, 6 meses
Puntos: 66
Respuesta: $_files[]

Cita:
Iniciado por elena_22 Ver Mensaje
Hola, segui tu consejo pero hace lo mismo, probe subiendo los dos, uno si y uno no, y ninguno, cuando subo los dos lo hace correctamente, al igual si subo uno u otro, pero cuando no subo ninguno siempre entra al else if.

Ahora, todas estas sintaxis estan dentro de otro if, ¿tendrá eso algo que ver?
pero que resultado te imprimem en pantalla los var_dump??

El elseif solo se ejecuta si la condición es verdadera
__________________
Tu álbum de cromos online!!
  #5 (permalink)  
Antiguo 12/07/2010, 11:02
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: $_files[]

**Esto es lo que depliega si no subo ninguno.

entro en el elseif
array(1) { [0]=> string(0) "" }
string(0) ""


**Esto si solo subo uno

entro en el elseif
array(1) { [0]=> string(11) "imagen.jpg" }
string(0) ""


**Y esto es si son los dos

entro en el if
array(1) { [0]=> string(11) "imagen.jpg" }
string(8) "dido.flv"
  #6 (permalink)  
Antiguo 12/07/2010, 11:15
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 17 años, 7 meses
Puntos: 88
Respuesta: $_files[]

porque no solo ejecutas como aparezcan
Código PHP:
Ver original
  1. if(!empty($_FILES['multe']['name'])){
  2.     echo 'ejecutar almacenado de multe';
  3. }elseif(!empty($_FILES['video']['name'])){
  4.     echo 'ejecutar almacenado de video';
  5. }else{
  6.     echo 'no se realiza acci&oacute;n, motivo: no existen datos';
  7. }
espero y te sirva
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 12/07/2010, 11:25
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: $_files[]

Hola hice como dices, pero sigue igual, siempre inserta un valor vacio si no selecciono nada en los files
  #8 (permalink)  
Antiguo 12/07/2010, 11:33
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 17 años, 7 meses
Puntos: 88
Respuesta: $_files[]

en la tabla en donde guardas estos valores son solamente los únicos campos(para imagen y video) o tienes mas para otros valores???
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #9 (permalink)  
Antiguo 12/07/2010, 11:37
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: $_files[]

Son solo para esos valores, es una tabla de multimedia, y tengo otra tabla de textos a los cuales le agrego la llave de multimedia
  #10 (permalink)  
Antiguo 12/07/2010, 11:41
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 13 años, 6 meses
Puntos: 66
Respuesta: $_files[]

Cita:
Iniciado por eits Ver Mensaje
en la tabla en donde guardas estos valores son solamente los únicos campos(para imagen y video) o tienes mas para otros valores???
Hola eits,

Pero fíjate que lo curioso del caso es que entra en el elseif aun no cumpliendose la condición


cita-> **Esto es lo que depliega si no subo ninguno.

entro en el elseif
array(1) { [0]=> string(0) "" } y para entrar debería ser !=""
string(0) ""


__________________
Tu álbum de cromos online!!
  #11 (permalink)  
Antiguo 12/07/2010, 11:47
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: $_files[]

Si, ese es el problema. Yo digo que es porque todas esas funciones estan dentro de otro if, no se si no debe ir así
  #12 (permalink)  
Antiguo 12/07/2010, 11:52
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 17 años, 7 meses
Puntos: 88
Respuesta: $_files[]

y que te devuelve esto
Código PHP:
Ver original
  1. echo 'multe = '.$_FILES['multe']['name'];
  2. echo '<br />video = '.$_FILES['video']['name'].'<br />';
  3. if($_FILES['multe']['name']!='' && $_FILES['video']['name']!=''){
  4.     echo 'ejecutado primer if<br/>';
  5. }elseif(($_FILES['multe']['name']!='') && empty($_FILES['video']['name'])){
  6.     echo 'ejecutado elseif <br/>';
  7. }else{
  8.     echo 'no se ejecutó nada<br/>';
  9. }
  10. var_dump($_FILES['multe']);
  11. echo'<br/>'
  12. var_dump($_FILES['video']);
aunque este linea
elseif(($_FILES['multe']['name']!='') && empty($_FILES['video']['name']))

no me deja convencido, porque solo debe realizarse si multe trae valor y video no
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #13 (permalink)  
Antiguo 12/07/2010, 12:09
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: $_files[]

Mira si no subo nada esto es lo que me muestra:

multe = Array
video =

Entendiendo que el multe si tiene valor
  #14 (permalink)  
Antiguo 12/07/2010, 12:17
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 17 años, 7 meses
Puntos: 88
Respuesta: $_files[]

y el var_dump($_FILES['multe']); no devolvió los valores??
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #15 (permalink)  
Antiguo 12/07/2010, 12:21
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 12 años, 8 meses
Puntos: 1
Esto es lo que muestra el var_dump si no subo nada

array(1) { [0]=> string(0) "" }
string(0) ""

y si subo esto muestra

array(1) { [0]=> string(15) "camera-icon.jpg" }
string(0) ""

Pero el error persiste, inserta un valor vacio en la base de datos sin subir nada

Última edición por GatorV; 12/07/2010 a las 13:36

Etiquetas: files
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:03.