Foros del Web » Programando para Internet » PHP »

Problema con archivo temporal

Estas en el tema de Problema con archivo temporal en el foro de PHP en Foros del Web. Amigos: Tengo un form con varios campos dentro de ellos un file. Subo todos los datos, textos y una imagen (solo la ruta) a una ...
  #1 (permalink)  
Antiguo 24/03/2009, 15:43
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Problema con archivo temporal

Amigos:

Tengo un form con varios campos dentro de ellos un file.
Subo todos los datos, textos y una imagen (solo la ruta) a una bd.
Hasta aquí todo bien.
Resulta que cuando quiero subir un segundo registro, no le indico imagen alguna, dentro del código lo compruebo y le asigno una imagen general a este registro.
Cuando veo lo que tengo en la bd compruebo que no tengo esa imagen general, por ejemplo "blank.jpg" sino que tengo la ruta anterior del registro anterior, se entiende???
Creo que me queda la ruta de la imagen en un temporal.... como se puede solucionar esto???
Este es el codigo que hace la comprobacion del archivo de imagen:

Código PHP:
if (!empty($_FILES["foto1"])){
   
$foto1 == "blank.jpg";
} else {
   
$foto1 sube_imagen($_FILES["foto1"]);
   
$foto1 '/fotos/'.$foto1.'.jpg';

Luego tomo todos los demas parametros y los inserto en la bd.
La funcion sube_imagen() sube dicha foto.
También probe de dejar el campo $foto1 vacio, pero siempre me almacena en la bd la ruta de la imagen anterior.
Espero que puedan ayudarme....

ARMANDOWEB
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #2 (permalink)  
Antiguo 24/03/2009, 15:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con archivo temporal

Checa tu linea donde asignas, tienes $foto1 == "blank.jpg", eso es comparación, para asignar tienes que usar una =.

Saludos.
  #3 (permalink)  
Antiguo 24/03/2009, 16:13
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Problema con archivo temporal

Hola GatorV:

Si, tienes razón.
En el código lo tengo bien, lo tengo con un =
La verdad que no se como solucionar esto... sigo intentando y nada...

ARMANDOWEB
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #4 (permalink)  
Antiguo 24/03/2009, 16:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con archivo temporal

Pon como haces la consulta, ya que entonces el problema puede estar ahí. Por otro lado para comparar que no hay archivos lo mejor es así:
Código php:
Ver original
  1. if(isset($_FILES['foto1']) && ($_FILES['foto1']['error'] == UPLOAD_ERR_NO_FILE) ) {
  2.        $foto1 = 'blank.jpg';
  3. }

Saludos.
  #5 (permalink)  
Antiguo 25/03/2009, 10:03
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Problema con archivo temporal

GatorV:

Este sería el código completo:


Código PHP:
if(isset($_FILES['foto1']) && ($_FILES['foto1']['error'] == UPLOAD_ERR_NO_FILE)){
    
$foto1 'blank.jpg';
} else {
    
$foto1 sube_imagen($_FILES["foto1"]);
    
$foto1 '/fotos/'.$foto1.'.jpg';
}    
                    
$sql "INSERT INTO noticias (id, fecha, categoria, titulo, copete, noticia, foto1, mostrar) VALUES('0','$_POST[fecha]','$_POST[categoria]','$_POST[titulo]','$_POST[copete]','$_POST[noticia]','$foto1','$_POST[mostrar]')";

$consulta mysql_query($sql) or die(mysql_error());
echo 
'<h2>El registro ha sido guardado exitosamente!!</h2>'
Modifiqué la linea como me sugeriste pero sigue haciendo el mismo trabajo.

La verdad que no se que puede ser...

Espero que puedan ayudarme.

Desde ya muchas gracias a todos.

ARMANDOWEB.
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #6 (permalink)  
Antiguo 25/03/2009, 11:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con archivo temporal

Mmmm muy raro como es que implementas el código, si este te trae el registro del anterior es que de alguna forma como mandas llamar al código esta re-enviando los valores anteriores...
  #7 (permalink)  
Antiguo 25/03/2009, 13:36
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Respuesta: Problema con archivo temporal

Si, es muy raro....

Al subir una noticia, completando todos los datos incluída la foto, me guarda todo en la bd y la ruta de la imagen que viene en foto1 desde la funcion sube_imagen(). Esta función hace que suba la imagen y me saca el nombre de la foto la cual es renombrada también por la funcion.

De lo que me doy cuenta es que cuando no completo el campo foto1 en el form y hace todo el proceso, no sube la imagen al servidor (como es obvio ya que no especifico ninguna en el form), pero si me guarda la ruta traida por sube_imagen().

Entonces lo que deduzco es que no está funcionando esta comprobación:

Código PHP:
if(isset($_FILES['foto1']) && ($_FILES['foto1']['error'] == UPLOAD_ERR_NO_FILE)){
    
$foto1 'blank.jpg';
} else {
    
$foto1 sube_imagen($_FILES["foto1"]);
    
$foto1 '/fotos/'.$foto1.'.jpg';

sino no debería actuar la funcion sube_imagen().... se entiende???

La verdad que este tema me esta dando vueltas la cabeza....

ARMANDOWEB.
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #8 (permalink)  
Antiguo 25/03/2009, 13:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con archivo temporal

Prueba poner un echo adentro para que veas en que parte del proceso entra:
Código php:
Ver original
  1. if(isset($_FILES['foto1']) && ($_FILES['foto1']['error'] == UPLOAD_ERR_NO_FILE)){
  2.     $foto1 = 'blank.jpg';
  3.     echo "pasa por no-files";
  4. } else {
  5.     $foto1 = sube_imagen($_FILES["foto1"]);
  6.     $foto1 = '/fotos/'.$foto1.'.jpg';
  7.     echo "pasa por aca";
  8. }

Saludos.
  #9 (permalink)  
Antiguo 25/03/2009, 13:58
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 3 meses
Puntos: 7
Ok, pruebo eso.

Porque estaba pensando que podría haber algo mal en la funcion sube_imagen(), pero si esa comprobacion funcionaria no debería actuar dicha funcion, no?

Pruebo y les cuento.

Muchas gracias!

ARMANDOWEB.

Hola:

Ahora si funciona!! La verdad que no se que pasaba....

Me parece que solo debía apagar la pc, dejarla descansar y luego de un tiempo volver a intentar!! jajaja.

Muchas gracias a todos....

ARMANDOWEB.
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]

Última edición por GatorV; 26/03/2009 a las 10:44
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 23:36.