Foros del Web » Programando para Internet » Javascript » Frameworks JS »

retornar datos

Estas en el tema de retornar datos en el foro de Frameworks JS en Foros del Web. hola comunidad tengo un problema, estoy tratando de subir un fichero al servidor pero lo estoy haciendo de forma tal que no se refresque la ...
  #1 (permalink)  
Antiguo 06/12/2010, 23:30
 
Fecha de Ingreso: marzo-2009
Mensajes: 155
Antigüedad: 15 años, 2 meses
Puntos: 1
retornar datos

hola comunidad tengo un problema, estoy tratando de subir un fichero al servidor pero lo estoy haciendo de forma tal que no se refresque la pagina aqui pongo parte del index.php

Código:
    <div id="uploadForm" style="filter:alpha(opacity=0); opacity: 0.0; width: 300px; cursor: pointer;">
        <form id="formName_fichero" method="post" enctype="multipart/form-data" action="subirArchivo.php" target="iframe_fichero">
            <input type="hidden" name="id" id="id" value="_fichero" />
            <input name="ficher" id="ficher" type="file" value="ficher" onchange="return uploadFile(this)" />
            <iframe name="iframe_fichero" src="" width="400" height="100" style="display:none"> </iframe>
        </form>
    </div>
ahora esto es lo que tengo en subirArchivo.php

Código:
 if($_POST['id']))
    {
        if (!copy($_FILES['ficher']['tmp_name'], $dir.$_FILES['ficher']['name']))
        {
            $var = $_FILES['ficher']['name'];
           return $this->renderText('<script> alert("Error al Subir el Archivo");</script>');
        }
     }
    else
    {
         return $this->renderText('prueba');
    }
en el onchange del input file llamo a una funcion javascript que es esta

Código:
function uploadFile(obj) 
{
    uploadDir = obj.value;
    document.getElementById('formName_fichero').submit();
    $.getJSON("subirArchivo.php",{'url' : uploadDir},parseInfo);
    
}
hasta aqui todo funciona cuando ejecuto la funcion ajax me evuelve el valor bien, ahora loq que quiero lograr son dos cosas, una que mediante ajax me mande si se produjo un error a la hora de subir el fichero par mostrarlo en un div y dos si se guardo con exito que me retorne vi ajax los datos del fichero como son nombre,tamño y extension, si alguien sabe como resolver esto se lo agradecere

saludos manuelle
  #2 (permalink)  
Antiguo 06/12/2010, 23:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: retornar datos

creo que estas haciendo las cosas un poco complicadas...

el hecho de la función $.getJSON no envía el formulario, es mas, solo hace una petición GET para obtener una respuesta, imagino que obtienes: prueba

para subir un archivo usando Ajax el método de envío debería ser POST y no GET, además, debe ser capaz de enviar la información binaria del archivo a subir, cosa que actualmente es imposible de lograr usando jQuery solamente...

de ahí el uso del <iframe/>, y es una técnica válida, sin embargo existen algunas mas eficientes usando Flash, de hecho todas las extensiones para subir archivos asíncronamente dependen de Flash...

creo que tu tema no va en este foro, pues es mas problema de JS/DOM, y sobre la forma en que recibes los datos... la único que se me ocurre es lo siguiente:

- al enviar el formulario por un iframe dicho iframe debe cargar el resultado finalizado de la operación, exactamente igual que si enviaras el formulario normalmente...
- bien, dicho iframe podría tener el atributo onload que ejecutaría alguna función al terminar la carga de dicho marco...
- al final en dicho callback puedes obtener la información recibida en el iframe, que podría ser formato JSON claramente...

al final mi recomendación es que uses un script ya existente, ya que implementar esto que necesitas lleva su tiempo y no es sencillo dominar todos los aspectos, sin embargo hice una búsqueda sencilla y resultó esto:

Google
file upload using iframe

http://www.ajaxprojects.com/ajax/tut...php?itemid=378
http://viralpatel.net/blogs/2008/11/...en-iframe.html
http://www.webtoolkit.info/ajax-file-upload.html
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/12/2010, 10:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a AJAX

Etiquetas: ajax
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 04:21.