Foros del Web » Programando para Internet » PHP »

problema con imput tipo file

Estas en el tema de problema con imput tipo file en el foro de PHP en Foros del Web. Hola: En un formulario de actualización de datos, tengo una casilla imput del tipo file. Se dá el caso que si un cliente quiere cambiar ...
  #1 (permalink)  
Antiguo 15/10/2008, 11:37
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
problema con imput tipo file

Hola:

En un formulario de actualización de datos, tengo una casilla imput del tipo file.
Se dá el caso que si un cliente quiere cambiar algunos datos, pero no la imagen,
al actualizar se borra la imagen de la BD.

Esto ocurre porque se puede hacer un echo a todos los imput menos al file (creo que no lo permite window por seguridad).

Pero esto es un latazo, por que el clente no se dá cuenta que si no vuelve a meter la imagen, aunque sea la misma, la pierde. pues la variable que se manda a la Bd está vacía cuando se actualiza.
Yo lo tengo así y no me funciona:

<input name="logo" type="file" class="cajatexto1" id="logo" style="float: left" onChange="muestra();" value="<?php echo $row_resultado['logo']; ?>" size="16">
(Lógicamente cuando el cliente mete otra imagen todo vá bien).
Sabeís como no perder el dato en la Bd, cuando el cliente no cambia la imagen.

Saludos
  #2 (permalink)  
Antiguo 15/10/2008, 11:40
Avatar de DjFaramir  
Fecha de Ingreso: febrero-2003
Ubicación: La Plata, Buenos Aires, Argentina
Mensajes: 131
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: problema con imput tipo file

Lo mas simple seria revizar que si el campo esta vacio antes de guardar, evitar guardarlo...
Arma el query dependiendo de que campos llenos haya... si la imagen esta vacia, que directamente no aparezca referencia a la imagen en el query.
Y de querer borrar la foto, agrega otro campo tipo checkbox que sea "Borrar" y en el caso de que sea true, guardar el campo vacio como hace ahora.
__________________
See you... y Tolkien... mucho Tolkien...
  #3 (permalink)  
Antiguo 15/10/2008, 11:58
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: problema con imput tipo file

Prueba con esto

Código PHP:
$imagen = (empty($_POST[logo])) ? 'img' "'".$_POST[logo]."'";
//No dices como se llama el campo donde se mete la imagen así que le pongo el nombre img es solo un ejemplo

("UPDATE xxxx set titulo='".$_POST['nombre']."',comentario='".$_POST['cont_1']."' img=".$imagen."  WHERE id='".$id."'"); 
Bueno paso a explicar lo que hago, si el campo de la imagen esta vació le digo que ponga en ese campo como dato img (ose el nombre de la tabla de la db donde se mete la imagen), osea la llamada a la db quedaría así img=img y de esta forma se mete la misma imagen que esta actualmente en la db, en caso contrario de que el campo no este vació se mete la imagen en concreto.

Un saludo.

PD: Como te dice DjFaramir también es valida e incluso seria mejor, eso ya como tu quieras :D.
  #4 (permalink)  
Antiguo 15/10/2008, 12:16
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: problema con imput tipo file

Muchas gracias, voy a probar y os cuento.
Un saludo aos dos.
  #5 (permalink)  
Antiguo 16/10/2008, 01:01
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: problema con imput tipo file

hola djmourino:

El campo en ladb lo tengo como logo.
Lo que me dices funcion abien cuando no hay imagen, pereo cuando ya hay un nombre de imagen en la bd, me pone siempre logo.
Gracias.
  #6 (permalink)  
Antiguo 16/10/2008, 03:21
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: problema con imput tipo file

que raro, si se yama logo el campo la yamada tendria que quedar entonces logo=logo, prueba entonces de esta forma que es como dice DjFaramir

Código PHP:
$imagen = (empty($_POST[logo])) ? '' "logo='".$_POST[logo]."'";


(
"UPDATE xxxx set  $imagen  WHERE id='".$id."'"); 
esta forma seria como dice DjFaramir si no se pone imagen en el campo no se hace referencia a la tabla logo para que no se modifique, si tiene algo se pone la en la llamada logo='".$_POST[logo]."', prueba y nos cuentas.

Un saludo.

EDIT: Una cosa yo pongo $_POST[logo] a modo de ejemplo tu tienes que usar $_FILES[logo][xxx] primero para tratar la imagen, lo digo por si acaso no valla a aser que copies y peges el code y no te fijes en ese detalle.

Última edición por djmourino; 16/10/2008 a las 03:34
  #7 (permalink)  
Antiguo 17/10/2008, 01:11
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: problema con imput tipo file

Buenos días:

Lo he solucionado así:
$nombre archivo =$_FILES["logo"]["name"];
if (empty($nombre_archivo)){$nombre_archivo = $row_resultado ['logo'];}


Muchas gracias por vuestro apoyo.
Un saludo
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:43.