Foros del Web » Programando para Internet » PHP »

Comparar si un campo de foto esta vacio o lleno

Estas en el tema de Comparar si un campo de foto esta vacio o lleno en el foro de PHP en Foros del Web. Hola amigos yo de nuevo, es que tengo un problema que no puedo resolver es comprar si un campo de imagen esta lleno en un ...
  #1 (permalink)  
Antiguo 13/09/2008, 01:20
Avatar de djdraft  
Fecha de Ingreso: abril-2008
Mensajes: 118
Antigüedad: 11 años, 8 meses
Puntos: 0
Comparar si un campo de foto esta vacio o lleno

Hola amigos yo de nuevo, es que tengo un problema que no puedo resolver es comprar si un campo de imagen esta lleno en un formulario este es el codigo pero no me funciona ejecuta siempre el que no quiero cuando debe

Cita:
if ($_POST['foto']!=""){
copy($_FILES['foto']['tmp_name'],$_FILES['foto']['name']);
$nom=$_FILES['foto']['name'];
$tipo = $HTTP_POST_FILES['foto']['type'];

$otro = $nom;

$nuevo_nombre = "../usuarios/img/raf";
$nombra = $otro;
$renombra = $nuevo_nombre.".jpg";
rename ($nombra, $renombra);
}

else{
echo "no hay foto";
}
__________________
<img src="http://i280.photobucket.com/albums/kk197/djdraft22/DR.jpg">

Última edición por djdraft; 13/09/2008 a las 01:26 Razón: puse una letra mal
  #2 (permalink)  
Antiguo 13/09/2008, 01:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: Comparar si un campo de foto esta vacio o lleno

Todo lo que se recibe de un campo FILE viene en la variable superglobal $_FILES, no POST.

Código PHP:
if($_FILES['foto']['name']!="") {
//ejecuta
}
else {
//no ejecuta

Por cierto, cambia $HTTP_POST_FILES por $_FILES.
  #3 (permalink)  
Antiguo 13/09/2008, 02:07
Avatar de mauricioadrian  
Fecha de Ingreso: junio-2008
Mensajes: 157
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Comparar si un campo de foto esta vacio o lleno

RonRuby tiene Razon, tienes que implementar el array $_FILES (siempre con mayusculas) y otro pequeño detalle que suele pasar fijarse que en el form este la propiedad enctype="multipart/form-data"

Saludos
__________________
Solo existe 1 0 clases de personas : las que entienden números binarios y las que no.
www.villegasaldia.com.ar
  #4 (permalink)  
Antiguo 13/09/2008, 04:36
 
Fecha de Ingreso: mayo-2007
Mensajes: 348
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Comparar si un campo de foto esta vacio o lleno

Seria recomendable utilizar trim() también por si acaso
  #5 (permalink)  
Antiguo 13/09/2008, 18:06
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 12 años, 1 mes
Puntos: 25
Respuesta: Comparar si un campo de foto esta vacio o lleno

Código PHP:

if($_FILES['foto']['name'] == NULL) {
//ejecuta
}
else {
//no ejecuta

__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 14/09/2008, 22:15
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Comparar si un campo de foto esta vacio o lleno

@eddwinpaz, no puedes usar NULL, pues el campo existe en el formulario y en los datos enviados aunque no tenga contenido, y como explico en este mensaje NULL está relacionado con la existencia de una variable y no con su contenido. Por lo tanto, tu script siempre devolverá false? (La variable existe, aunque esté vacía)

Me parece que se debe usar la función empty() para verificar de primer paso si se ha subido un archivo o no.

Saludos,
  #7 (permalink)  
Antiguo 14/09/2008, 22:41
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 11 años, 10 meses
Puntos: 260
Sonrisa Respuesta: Comparar si un campo de foto esta vacio o lleno

Hola,

Para mayor seguridad se debería de reemplazar por una llamada a la función is_uploaded_file($_FILES['foto']['tmp_name']).

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 21:28.