Foros del Web » Programando para Internet » PHP »

Subir imagen dentro de una funcion xajax

Estas en el tema de Subir imagen dentro de una funcion xajax en el foro de PHP en Foros del Web. Hola a todos. Aunque use Ajax para procesar, el problema tiene k ser la parte de php por eso ecribo en este foro. Tengo este ...
  #1 (permalink)  
Antiguo 20/09/2007, 06:13
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Subir imagen dentro de una funcion xajax

Hola a todos.
Aunque use Ajax para procesar, el problema tiene k ser la parte de php por eso ecribo en este foro. Tengo este formulario y esta funcion para xajax k sirve para procesar un formulario donde aparte de campos de texto hay una foto k subir:
Código:
<form id="form1" name="formulario" method="post" action="" enctype="multipart/form-data">
                        {$formulario.nombre}<br />
                        <input type="text" name="nombre" id="nombre" />
                        {$formulario.contrasena}<br />
                        <input type="password" name="password" id="password" />
                        {$formulario.foto}<br />
                        <input name="foto" type="file" id="foto" />
                        <input type="button" value="Enviar" onclick="xajax_procesar_formulario(xajax.getFormValues('formulario'))" />
</form>
Código PHP:
function procesar_formulario($form_entrada)
    {
       
//creo el xajaxResponse para generar una salida
       
$respuesta = new xajaxResponse('UTF-8');
    
       
//validación
       
$error_form "";
       if (
$form_entrada["nombre"] == "")
          
$error_form 'Porfavor escribe tu nombre';
       elseif (
$form_entrada["password"] == "")
          
$error_form "Porfavor escribe tu contraseña";
          
    
//Existe un campo vacio, el formulario no se procesa y se muestra en pantalla el campo que se debe rellenar:
        
if ($error_form != "")
        {
            
$respuesta->addAssign("mensaje","innerHTML","<span style='color:red;'><p>$error_form</p></span>");
        }
    
//Todos los campos han sido rellenados, el formulario se procesa:
        
else
        {    
    
//Enviamos a las bases los datos del formulario;
mysql_query("INSERT INTO usuarios (nombre,password) values ('".$form_entrada["nombre"]."','".$form_entrada["password"]."')") or die(mysql_error());
    
//Guardamos la foto original en el servidor;
move_uploaded_file($HTTP_POST_FILES[$form_entrada[$form_entrada["foto"]]['tmp_name'], $dir_fotos_originales."/".$nombre_foto); 
        }
        
       return 
$respuesta;
       
    } 
El caso es k la informacion se envia a las bases de datos perfectamente pero la segunda parte, la de subir la imagen nada de nada. Antes de usar xajax, procesando el formulario como toda la vida, la imagen se subia correctamente, el script k usaba antes (en el k no habia validaciones ni nada, simplemente se rellenaban los campos y se procesaba la informacion y se subia la foto) funcionaba perfectamente y es este:
Código PHP:
    //Enviamos a las bases los datos del formulario;
mysql_query("INSERT INTO usuarios (nombre,password) values ('$nombre','$password')") or die(mysql_error());
    
//Guardamos la foto original en el servidor;
move_uploaded_file($HTTP_POST_FILES[foto]['tmp_name'], $dir_fotos_originales."/".$nombre_foto); 
La diferencia esk en este las variables k enviamos a la base de datos son "$nombre y $password" recogidas directamente del formulario, mientras k usando xajax las variables pasan a ser: "$form_entrada["nombre"] y $form_entrada["password"]", cambiando eso la informacion se agrega a la base de datos sin problema. Sin embargo en la parte de subir la imagen es donde me pierdo, ya que si os fijais en el script k usaba anteriormente (antes de usar xajax) la orden para subir la imagen era esta:
Código PHP:
move_uploaded_file($HTTP_POST_FILES[foto]['tmp_name'], $dir_fotos_originales."/".$nombre_foto); 
Pues supongo k el fallo esk ahora al estar dentro de la funcion donde pone [foto] no funciona, probe a poner:
Código PHP:
move_uploaded_file($HTTP_POST_FILES[$form_entrada["foto"]]['tmp_name'], $dir_fotos_originales."/".$nombre_foto); 
pero nada, Porfavor alguien que sepa como hacerlo k me lo explike k ya estoy desesperado con esto. Muchas gracias.
  #2 (permalink)  
Antiguo 20/09/2007, 09:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Subir imagen dentro de una funcion xajax

Para responderte rapidamente: No hay forma de subir archivos via AJAX.

Si quieres procesar archivos forzosamente necesitas hacer un POST normal y no lo puedes realizar via AJAX.

Saludos.
  #3 (permalink)  
Antiguo 23/10/2007, 03:47
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Subir imagen dentro de una funcion xajax

sipuedes si invocas a un frame que lo haga de manera oculta
  #4 (permalink)  
Antiguo 23/10/2007, 05:07
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Subir imagen dentro de una funcion xajax

Y eso a groso modo como seria??
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 06:25.