Foros del Web » Programando para Internet » PHP »

if (!isset($_FILES))

Estas en el tema de if (!isset($_FILES)) en el foro de PHP en Foros del Web. Aquí estoy de nuevo con otra duda: He hecho el siguiente condicional, pero no me funciona, siempre me hace el include. Lo que quiero es ...
  #1 (permalink)  
Antiguo 06/11/2007, 12:54
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 11 meses
Puntos: 3
if (!isset($_FILES))

Aquí estoy de nuevo con otra duda:

He hecho el siguiente condicional, pero no me funciona, siempre me hace el include. Lo que quiero es que si no viene ninguna imagen nueva del formulario, que no haga el include.

En el formulario:
<input name="foto[]" type="file" size="20" />

Código PHP:
if (!isset($_FILES)) return '';
    else{
    include(
'insert.php');
    } 

Gracias a todos, cada día aprendo un poquito más
  #2 (permalink)  
Antiguo 06/11/2007, 13:15
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: if (!isset($_FILES))

if (!isset($_FILES)){
return ' ';
}
else{
include('insert.php');
}

Pruebalo así, o sino cambia return ' ' por return " ", salu2
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 06/11/2007, 13:18
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: if (!isset($_FILES))

Gracias ferbux, pero tampoco funciona
  #4 (permalink)  
Antiguo 06/11/2007, 13:24
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: if (!isset($_FILES))

cuando mandas los datos del tu parte html al php, ke valor toma $_FILES,puedes imprimirla para ver ke valor toma cuando no mandas ninguna imagen nueva?
__________________
"Eres grande por que caminas entre gigantes"
  #5 (permalink)  
Antiguo 06/11/2007, 13:28
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: if (!isset($_FILES))

hola, prueba asi:
Código PHP:
if(!empty($_POST['foto'])){
    include(
'insert.php');

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 06/11/2007, 13:31
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: if (!isset($_FILES))

Hola la variable $_files de donde lo sacas? por que veo que el nombre de tu input file es: foto[], la solucion a tu problema seria lo siguiente:


primero tienes que sacar los datos del tu input file que en este ejemplo se llama "userfile":

Código PHP:
$nombre_archivo $HTTP_POST_FILES["userfile"]["name"]; 
$tipo_archivo $HTTP_POST_FILES["userfile"]["type"]; 
$tamano_archivo $HTTP_POST_FILES["userfile"]["size"]; 
entonces para hacer tu pregunta ssi se esta enviando una imagen o no seria asi:

Código PHP:
if($nombre_archivo=="")
{
//si esta vacio haces un mensaje de error o retorno al formulario
}
else
{
// si viene la imagen haces tu insert

espero te sirva, saludos.
  #7 (permalink)  
Antiguo 06/11/2007, 16:38
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: if (!isset($_FILES))

Gracias por responder.

ferbux: no consigo que imprima el valor, me imprime "Array", tanto si subo la foto como si no. Si subo la foto, como llama al insert.php le asigno un nuevo id en la Bd y de ahí coge el nombre; por ejemplo: 120, la imagen final es 120.jpg

rogertm: lo que me dices no ha funcionado, supongo que es porque necesito que identifique si viene algún fichero (por eso uso $_FILES), no un campo llamado 'foto'. También probé a poner $_FILES['foto']

ginitofl: el nombre es foto[], porque necesito que sea un Array ya que el cliente puede subir de una vez varias fotos, por ejemplo 20. Luego hago un for para que las suba todas de una vez. Dejo el código ya que puede servirle a alguien:

Código PHP:
for($i=0$i<count($_FILES['foto']['name']); $i++) {
    
$id_img '';
    
$id_galeria $_REQUEST['id_galeria'];
    
$texto_img $_REQUEST['texto_img'.($i+1)];
    
    
// Inserto los datos en la BD
    
$conn db_connect();
    
$query =
        
"INSERT INTO
            galeria_img
        VALUES
            ('$id_img', '$id_galeria', '$texto_img')
        "
;

Así que sigo en las mismas, ¿alguna idea?
  #8 (permalink)  
Antiguo 06/11/2007, 16:43
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: if (!isset($_FILES))

para poder ayudarte te recomiendo que imprimas el valor de files lo haces de la siguiente forma :

print_r($_FILES);

ahi podras ver la diferencia de cuando te envian algo y cuando no , y asi creo que podras encontrar la solucion por tus propios medios y d euna forma sencilla y aprenderas algo nuevo :P
  #9 (permalink)  
Antiguo 06/11/2007, 16:43
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: if (!isset($_FILES))

Código PHP:
foreach($_FILES['foto'] as $file){
    echo 
'<br>'.$file['name'];

Prueba si te imprime los nombres de los archivos y continuas por esa ruta.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #10 (permalink)  
Antiguo 06/11/2007, 16:56
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: if (!isset($_FILES))

imprimela con print_r(), asi como te menciona dopon, y nos dices ke te muestra cuando no la envias.
__________________
"Eres grande por que caminas entre gigantes"
  #11 (permalink)  
Antiguo 06/11/2007, 16:56
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: if (!isset($_FILES))

Gracias a todos. Ya lo he solucionado. Aquí lo dejo:

Código PHP:
    for($i=0$i<count($_FILES['foto']['name']); $i++)
       {
        if (!empty(
$_FILES['foto']['name'][$i]))
           {
        include(
'../incs_panel/galeria_insert.php');
        }
    } 
  #12 (permalink)  
Antiguo 06/11/2007, 16:57
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: if (!isset($_FILES))

Aunque ahora que lo pienso me está haciendo un include para cada imagen.....
  #13 (permalink)  
Antiguo 06/11/2007, 17:07
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: if (!isset($_FILES))

simplemente haz un volcado como te dije con print_r()

nos muestras los dos casos en tu script y te solucionamos eso de una

si no esoy mal la solucion ma sfacil es con count($_FILES) si es 0 no llego nada y sino e sporque es mayor a 0 osea hay varios archivos ;) muestranos y creo que con count() podriamos solucionartelo
  #14 (permalink)  
Antiguo 06/11/2007, 17:47
 
Fecha de Ingreso: abril-2004
Mensajes: 49
Antigüedad: 20 años
Puntos: 1
Re: if (!isset($_FILES))

Hola gente.

EDIT: Me corrijo. Había confundido las carácterísticas de include y require. Pero además esto se superó en PHP 5. Mis disculpas por el post.
__________________
OS: Win 2k pc: duron 1800+ 384mb ram dimm
mother: pcchips.. creo
3d: geforce 4 fx5200 128mb
audio: philips seismic edge psc705

Última edición por OutofOrder; 06/11/2007 a las 23:42
  #15 (permalink)  
Antiguo 06/11/2007, 20:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: if (!isset($_FILES))

Una solución un poco chapuzas... pero con include_once en vez de include sales del bache.
  #16 (permalink)  
Antiguo 06/11/2007, 21:12
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: if (!isset($_FILES))

Creeme que ese eno es el problema el del include yo los he hecho con condicionales y no hay problemas al incluir basados en una condición
  #17 (permalink)  
Antiguo 06/11/2007, 21:16
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: if (!isset($_FILES))

Ya, pero yo hablo del último post del autor, donde ya lo había solucionado pero se le repetian los includes...
  #18 (permalink)  
Antiguo 06/11/2007, 21:18
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: if (!isset($_FILES))

el problema no radica en que sea include o require_once sino en que para cada elemento d ela matriz $_FILES esta haciendo la inclusion, la solucion es la que ya comente haciendo un count a el array $_FILES para ver la longitud y verificar la carga de archivos o si no venia ninguno
  #19 (permalink)  
Antiguo 06/11/2007, 21:20
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: if (!isset($_FILES))

Me parece perfecto, pero yo no estoy discutiendo eso.
  #20 (permalink)  
Antiguo 07/11/2007, 03:19
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: if (!isset($_FILES))

Hola a todos:

Ya de vuelta, he probado lo que me comentáis de print_r()
print_r(count($_FILES['foto']['name']));

El resultado es que aunque no haya ningún archivo, sí que me dice que hay archivo.
Me imprime "1". A pesar de que el formulario está vacío y no he subido ningún archivo. Haciendo el foreach que comentaba Marvin, imprime los <br /> aunque lógicamente no pone ningún nombre porque no hay nada.

He comprobado que para que pase bien los datos, tengo que utilizar o un foreach o un for metiendo una variable. Con lo que no veo forma de conseguir que no coloque el include con cada imagen; bueno, creo que no es grave.

El input del formulario es el que os he puesto anteriormente:

<input type="file" name="foto[]" size="20" />


Otra cosa:
En otro mensaje pregunto si alguien sabe por qué no puedo ver por ftp las imágenes que subo a través de este formulario, a pesar que si puedo verlas en el web. ¿alguna idea?

Gracias a todos.
  #21 (permalink)  
Antiguo 07/11/2007, 04:34
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: if (!isset($_FILES)) - imágenes que no se ven por ftp

Vamos a liarlo un poco más
Sobre las imágenes que no se ven por ftp pero sí en el web, la única que no se ve por ftp es la última que sube ¡¡??
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 19:50.