Foros del Web » Programación para mayores de 30 ;) » Java »

APPLET enviar datos a php

Estas en el tema de APPLET enviar datos a php en el foro de Java en Foros del Web. Señores buenas noches.. pasoa explicar.. tengo un peque applet que hice.. y lo que hace es.. leer un excell, enviar sus campos a php, recursivamente ...
  #1 (permalink)  
Antiguo 04/11/2013, 01:58
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
APPLET enviar datos a php

Señores buenas noches.. pasoa explicar.. tengo un peque applet que hice.. y lo que hace es..

leer un excell, enviar sus campos a php, recursivamente y fila por fila..

hasta aca barbaro.. pero el problema esta en que me tira abajo el servidor apache..

imagino que es por que lo atoro con los datos.

de todas formas.. en el java tomo la respuesta ok de php para seguir pero por alguna razon java no espera esta respuesta y mete todo junto..

desde ya muchas gracias .... y pego el codigo.. para que me puedan dar una mano..

solo pongo los dos metodos mas importantes por que no me entran en el post. si alguien quiere verlo compelto.. lo subo a


http://www.tecnifer.com.ar/upxlssintabla.rar

Código:
public synchronized void filechooser(final String archivo) {

        botonProceso.setEnabled(false);
        varInicioFilas = Integer.parseInt(saltarInicio.getText());
        varCaracteresCode = Integer.parseInt(caracteresCode.getText());
        varOmitirPalabras = palabrasOmitir.getText();


        Runnable miRunnable = new Runnable() {
            public void run() {

                try {
                    /*inicia rubale*/

                    try {
                        botonDetener.setEnabled(true);



                        int rowGral = 0;
                        Workbook archivoExcel = Workbook.getWorkbook(new File(archivo));
                        //salida+="Número de Hojas\t"+archivoExcel.getNumberOfSheets()+"\n";
                        int filasdecadahoja = 0;
                        int nhoja = archivoExcel.getNumberOfSheets();
                        for (int sheetNo = 0; sheetNo < archivoExcel.getNumberOfSheets(); sheetNo++) {
                            Sheet hojax = archivoExcel.getSheet(sheetNo);
                            filasdecadahoja += hojax.getRows();

                        }

                        total.setText("" + filasdecadahoja);

                        for (int sheetNo = 0; sheetNo < archivoExcel.getNumberOfSheets(); sheetNo++) // Recorre 
                        // cada    
                        // hoja                                                                                                                                                       
                        {

                            hoval.setText("" + nhoja);
                            int rowHoja = 0;

                            Sheet hoja = archivoExcel.getSheet(sheetNo);
                            int numColumnas = hoja.getColumns();
                            int numFilas = hoja.getRows();



                            for (int fila = 0; fila < numFilas; fila++) {
                                
                                //mensajesSalida(""+fila);


                                if (!procesoActivo) {
                                    iniciar();
                                    jProgressBar1.setValue(0);

                                    procesoActivo = true;
                                    botonDetener.setEnabled(false);
                                    Thread.currentThread().stop();

                                }

                                rowHoja++;
                                rowGral++;
                                filahoja.setText("" + rowHoja);
                                filatotal.setText("" + rowGral);

                                int resto = filasdecadahoja - rowGral;
                                restan.setText("" + resto);

                                int porc = (rowGral * 100) / filasdecadahoja;



                               

                                primerCampo = hoja.getCell(0, fila).getContents();

                                Integer largo = primerCampo.length();
                                //mensajesSalida(Integer.toString(largo)+" - "+varCaracteresCode);
                                if (rowHoja > varInicioFilas) {
                                    
                                     String sale = null;
                                     
                                
                                    if (largo >= varCaracteresCode) {
                                        
                                       
                                     
                               
                                        
                                        if (varOmitirPalabras != "") {

                                            String[] arra = varOmitirPalabras.split(",");

                                            if (!in_array(primerCampo, arra)) {
                                                sale = parametizar(hoja, fila, paramVaciar);
                                                pasarBD(sale);
                                                paramVaciar = "0";

                                            }


                                        } else {
                                            sale = parametizar(hoja, fila, paramVaciar);
                                            pasarBD(sale);
                                            paramVaciar = "0";
                                        }
                                        
                                    }
                                }

                                //int entero= Integer.parseInt(reto);



                                //mensajesSalida(paramVaciar);

                                //paramVaciar="0";

                                if (porc == 100) {
                                    String mensajex;
                                    mensajex = "******************************************** \r\n"
                                            + "PROCESO COMPLETADO\r\n"
                                            + "********************************************";
                                    mensajesSalida(mensajex);

                                    campoArchivo.setText("");
                                    botonProceso.setEnabled(true);
                                    paramVaciar = iniciarVaciar;
                                    botonDetener.setEnabled(false);
                                }
                                jProgressBar1.setValue(porc);



                            }






                        }
                        // this.gereraTxt(data);

                    } catch (Exception ioe) {
                        //ioe.printStackTrace();
                        //ioe.toString()
                        iniciar();
                        botonProceso.setEnabled(true);
                        mensajesSalida("Error con el archivo: " + ioe.getMessage());
                        botonDetener.setEnabled(false);
                    }


                    /*finaliza runable*/
                } catch (Exception e) {
                    e.printStackTrace();
                    mensajesSalida("Error con el archivo: " + e.getMessage());
                    botonDetener.setEnabled(false);
                }
            }
        };

        Thread hilo = new Thread(miRunnable);
        hilo.start();


    }


public void pasarBD(String sale) throws InterruptedException {

        String reto;
        int salimero = 1;
        int ReintentosNum = 10;
        try {
            reto = requestFromDB(sale);

            String expose;
            if (!reto.equals("1")) {

                if (Intentos < ReintentosNum) {
                    mensajesSalida("Error de conexión, el servidor no da respuesta: reintento " + (Intentos + 1) + " de " + ReintentosNum);
                    Intentos++;
                    Thread.currentThread().sleep(3000);
                    pasarBD(sale);


                } else {
                    String mensajex;
                    mensajex = "******************************************** \r\n"
                            + "ERROR EN EL PROCESO\r\nEL SERVIDOR NO DIO RESPUESTA\r\n"
                            + "********************************************";
                    mensajesSalida(mensajex);
                    botonProceso.setEnabled(true);

                    botonDetener.setEnabled(false);
                    Intentos = 0;
                    Thread.currentThread().stop();

                }




            } else {
                //mensajesSalida("OK");
                Intentos = 0;
            }



        } catch (Exception ex) {
            Logger.getLogger(filechooser.class.getName()).log(Level.SEVERE, null, ex);
        }



    }

Última edición por marcusaurelio; 04/11/2013 a las 02:06
  #2 (permalink)  
Antiguo 07/11/2013, 00:42
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: APPLET enviar datos a php

parece que toy al horno y con papas........
  #3 (permalink)  
Antiguo 18/11/2013, 01:11
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: APPLET enviar datos a php

bueno bueno... o tengo mala suerte.. o mi pregunta esta mal explicada. .. si lguno cree esto ultimo. por favor.. me lo dice.. y lo acomodo.. desde ya muchas gracias.
  #4 (permalink)  
Antiguo 19/11/2013, 03:57
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: APPLET enviar datos a php

Cosas que deberías hacer para mejorar tus preguntas.

1.
Cita:
de todas formas.. en el java tomo la respuesta ok de php para seguir pero por alguna razon java no espera esta respuesta y mete todo junto..
Esto está muy mal explicado, el objetivo y problema de aplicación son claras para ti, pero no para el resto. Trata de explicar lo máximo posible y utiliza los signos de puntuación.

2.
Cita:
solo pongo los dos metodos mas importantes por que no me entran en el post. si alguien quiere verlo compelto.. lo subo a
Dices que tienes problemas con la conexión, sin embargo ni uno de los métodos que has puesto tiene que ver con el envío de datos. Ni siquiera has dicho cómo los estás enviando o qué cantidad de datos.

3.
Cuanto mayor sea el código que pongas y más genérica sea la pregunta, menos posibilidades tienes de que alguien te responda. Una cosa es contestar a una pregunta o corregir un error, y otra auditar código.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 21/11/2013, 14:48
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: APPLET enviar datos a php

Gracias Xerelo, pido disculpas por los errores en mi pregunta... y vamos de nuevo.

lo que hago es leer un xls, por medio de jxl-2.6.3.jar, ese xls linea por linea lo voy pasando a php.

las columnas de este no son siempre iguales.. y las paso por medio de un string al applet. esto es apra poder usarlo en varias paginas sin modificar el codigo.

Lo que pasa es que a veces hay xls de 5000 o mas filas. Esto no es un problema para el java pero si para el php. Según veo el applet termina por estresar el servidor..

Yo ahora luego de unas semanas de ver. Estoy pensando en hacer un wait cada 100 filas para que descanse unos 5 segundos y siga… pero en realidad me gustaria ver si hay una posibilidad de hacerlo de corrido.

para esto configuro el applet asi

Código:
<APPLET code="upxlssintabla.filechooser.class" archive="filechooser/lib/jxl-2.6.3.jar, filechooser/upXLSsintabla.jar" width="100%" height="378">
<PARAM name="DB_campos" value="p_codigo,p_detalle,p_marca,p_unidad,p_precio1,p_precio2,p_precio3,p_rubro,p_subrubro,p_cambioprecio,p_foto" />
<PARAM name="FILE_proceso" value="filechooser_response.php" />

</APPLET>
Donde DB_campos es el string con los campos.

El xls es mas o menos asi… en este caso.. en otro puede ser diferecnte… tener mas o menos campos.. incluso con mas o menos texto cada campo.

imagen


Luego vamos al tema del java..

En el init tomo las variables pasadas al applet

Código:
iniciarVaciar=getParameter("DB_vaciar");
paramVaciar = getParameter("DB_vaciar");
paramCampos = getParameter("DB_campos");
paramTabla = getParameter("DB_tabla");
paramFileProceso = getParameter("FILE_proceso");
urlProceso = getCodeBase() + paramFileProceso;
El metodo filechooser recorre el xls, tambien hace varios procesos.. y llama a varios metodos, para comprobar, si hay conexión con la db, generar el string de salida, mandar el string a php, etc.

Código:
public synchronized void filechooser(final String archivo) {
        botonProceso.setEnabled(false);
        varInicioFilas = Integer.parseInt(saltarInicio.getText());
        varCaracteresCode = Integer.parseInt(caracteresCode.getText());
        varOmitirPalabras = palabrasOmitir.getText();
        Runnable miRunnable = new Runnable() {
            public void run() {
                try {
                    try {
                        botonDetener.setEnabled(true);
                        int rowGral = 0;
                        Workbook archivoExcel = Workbook.getWorkbook(new File(archivo));
                        int filasdecadahoja = 0;
                        int nhoja = archivoExcel.getNumberOfSheets();
                        for (int sheetNo = 0; sheetNo < archivoExcel.getNumberOfSheets(); sheetNo++) {
                            Sheet hojax = archivoExcel.getSheet(sheetNo);
                            filasdecadahoja += hojax.getRows();

                        }
                        total.setText("" + filasdecadahoja);
                        for (int sheetNo = 0; sheetNo < archivoExcel.getNumberOfSheets(); sheetNo++) 
                        {
                            hoval.setText("" + nhoja);
                            int rowHoja = 0;
                            Sheet hoja = archivoExcel.getSheet(sheetNo);
                            int numColumnas = hoja.getColumns();
                            int numFilas = hoja.getRows();
                            for (int fila = 0; fila < numFilas; fila++) {
                                if (!procesoActivo) {
                                    iniciar();
                                    jProgressBar1.setValue(0);
                                    procesoActivo = true;
                                    botonDetener.setEnabled(false);
                                    Thread.currentThread().stop();

                                }
                                rowHoja++;
                                rowGral++;
                                filahoja.setText("" + rowHoja);
                                filatotal.setText("" + rowGral);
                                int resto = filasdecadahoja - rowGral;
                                restan.setText("" + resto);
                                int porc = (rowGral * 100) / filasdecadahoja;
                                primerCampo = hoja.getCell(0, fila).getContents();
                                Integer largo = primerCampo.length();

                                if (rowHoja > varInicioFilas) {
                                    
                                     String sale = null; 
                                    if (largo >= varCaracteresCode) {
                                        if (varOmitirPalabras != "") {

                                            String[] arra = varOmitirPalabras.split(",");

                                            if (!in_array(primerCampo, arra)) {
                                                sale = parametizar(hoja, fila, paramVaciar);
                                                pasarBD(sale);
                                                paramVaciar = "0";
                                            }
                                        } else {
                                            sale = parametizar(hoja, fila, paramVaciar);
                                            pasarBD(sale);
                                            paramVaciar = "0";
                                        }
                                        
                                    }
                                }

                                if (porc == 100) {
                                    String mensajex;
                                    mensajex ="PROCESO COMPLETADO\r\n";
                                    mensajesSalida(mensajex);

                                    campoArchivo.setText("");
                                    botonProceso.setEnabled(true);
                                    paramVaciar = iniciarVaciar;
                                    botonDetener.setEnabled(false);
                                }
                                jProgressBar1.setValue(porc);

                            }

                        }

                    } catch (Exception ioe) {
                        iniciar();
                        botonProceso.setEnabled(true);
                        mensajesSalida("Error con el archivo: " + ioe.getMessage());
                        botonDetener.setEnabled(false);
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                    mensajesSalida("Error con el archivo: " + e.getMessage());
                    botonDetener.setEnabled(false);
                }
            }
        };

        Thread hilo = new Thread(miRunnable);
        hilo.start();
    }
El metodo parametrizar, lo que hace es tomta paramCampos, que es el string que le paso al applet como DB_campos, hacer un splits por las comas y armar la salida de con los datos del xls. Por orden.. Osea que tranforma esto

p_codigo,p_detalle,p_marca,p_unidad,p_precio1,p_pr ecio2,p_precio3,p_rubro,p_subrubro,p_cambioprecio, p_foto

en esto

p_codigo=datos&p_detalle=datos&p_marca=datos, etc.

Código:
public String parametizar(Sheet hoja, int fila, String vaciar) {

        String campos = paramCampos;
        String tabla = "&DB_tabla=" + paramTabla;
        String vaciart = "&DB_vaciar=" + vaciar;
        String camposs = campos.replace(",", "=%s&") + "=%s" + tabla + vaciart;
        String[] cc = campos.split(",");
        String[] ff = new String[cc.length + 1];

        for (int i = 0; i < cc.length; i++) {

            ff[i] = hoja.getCell(i, fila).getContents();

        }

        return String.format(camposs, (Object[]) ff);

    }
Luego lo genrado por parametrizar(), es enviado al metodo pasarBD() y este lo que hace mandar esos datos a otro metodo requestFromDB(), que envia los datos a php y camptura la respuesta, en la variable reto. Si el valor de esta variable es 1 seguimos corriendo, si no es 1 lo que hace es hacer un wait y cada 3 segundos y hacer un reintento hasta 10 si en alguno de esos 10 vuelve a dar 1 sigue corriendo, y el contador se reestablece a cero.

Código:
public void pasarBD(String sale) throws InterruptedException {

        String reto;
        int salimero = 1;
        int ReintentosNum = 10;
        try {
            reto = requestFromDB(sale);
            String expose;

            if (!reto.equals("1")) {

                if (Intentos < ReintentosNum) {
                    mensajesSalida("Error de conexión, el servidor no da respuesta: reintento " + (Intentos + 1) + " de " + ReintentosNum);
                    Intentos++;
                    Thread.currentThread().sleep(3000);
                    pasarBD(sale);

                } else {
                    String mensajex;
                    mensajex = "ERROR EN EL PROCESO";
                    mensajesSalida(mensajex);
                    botonProceso.setEnabled(true);

                    botonDetener.setEnabled(false);
                    Intentos = 0;
                    Thread.currentThread().stop();

                }

            } else {
               
                Intentos = 0;
            }

        } catch (Exception ex) {
            Logger.getLogger(filechooser.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
  #6 (permalink)  
Antiguo 21/11/2013, 14:52
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: APPLET enviar datos a php

sigo aca por que el de arriba me quedo chico

El metodo requestFromDB basicamente envia el string (p_codigo=datos&p_detalle=datos&p_marca=datos) a php. Y hace lo explicado en el metodo anterior.

Código:
public String requestFromDB(String request) throws Exception {

        URL url;
        String ul = urlProceso;

        HttpURLConnection urlConn;
        DataOutputStream printout;
        DataInputStream input;
        url = new URL(ul);
        urlConn = (HttpURLConnection) url.openConnection();
        urlConn.setDoInput(true);
        urlConn.setDoOutput(true);
        urlConn.setUseCaches(false);
        urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        urlConn.setRequestMethod("POST");
        printout = new DataOutputStream(urlConn.getOutputStream());

        String content = request;
        printout = new DataOutputStream(urlConn.getOutputStream());
        printout.writeBytes(content);
        DataInputStream in = new DataInputStream(urlConn.getInputStream());

        BufferedReader rd = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
        String linea, tmp = "";
        while ((linea = rd.readLine()) != null) {
            tmp += linea;
        }
        in.close();
        printout.flush();
        printout.close();
        return tmp;

    }

si quieren descargar completo el java, el form y el php lo dejo por aca..

archivos

los links pueden dar forbiden pero si los copian y los pegan en el navegador bajan bien

gracias a todos y muy especialmente a xelero, espero haber sido mas claro en esta ocasion.
  #7 (permalink)  
Antiguo 22/11/2013, 02:26
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: APPLET enviar datos a php

Como ya te he comentado, basta con explicar el funcionamiento, no es necesario poner toneladas de línea de código. ¿Para qué quiero ver cómo recuperas los datos del xls si el problema lo tienes con la comunicación?

Con decir que envías los datos por post y que son unas 5000 llamadas, hubiera bastado. El método requestFromDB sí tiene sentido ponerlo, el resto no.

El problema es claro, demasiadas llamadas en poco tiempo. Tienes dos opciones, añadir un retardo cada cierto tiempo (o entre cada llamada) para que el servidor no se sature, o si tienes acceso al PHP modificarlo para que en vez de aceptar llamadas con información de un registro admita bloques de registros.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 22/11/2013, 18:35
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: APPLET enviar datos a php

gracias nuevamente xerelo..

cuando decis acceso al php hablas del script (a este tengo acceso ya que esta hecho por mi) o del php.ini (a este no.. ya que tengo un servidor contratado y compartido.)

lo de los retardos lo pense... tal como te comente arriba..

lo que no probe es mandar bloques.. de por ejemplo... 50 registros...

pero tenia miedo de que como a veces los xls pueden tener muchos datos, hablo de muchas columnas.. y tambien de campos de texto con mucho texto, tenia miedo de que me diera un timeout.

y hacerlo por ahi de 10 no me parecio.. con mucho sentido.. ya podria tambien saturar el servidor y/o hasta tener tambien un timeout

gracias .. voy a intentar lo de los retardos a ver como queda.. voy a intentar con unos 3 segundos cada 100 registros a ver como va.. luego comento..
  #9 (permalink)  
Antiguo 01/12/2013, 00:48
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: APPLET enviar datos a php

bueno ... xerelo te comento que.. hice lo de los retardos. termine metiendo este cdigo

Código:
                                if(rowGral%lapso==0){
                                mensajesSalida("Esperando.....\r\n");
                                Thread.currentThread().sleep(tiempos);
                                }
en cada vuelta del metodo filechooser

donde lapso y tiempos los paso como parametros del applet..

luego de probar varios tiempos.. y lapsos.. opte por que cada 250 vueltas espere 10 segundos.. y asi y todo, de vez en cuando, me da un error.. pero luego es recuperado por los sleep del metodo pasarBD()..

pero en 5000 vueltas se detiene 20 veces.. y por cada una son 10 segundos.. osea que tengo 200 segundos (mas de 3 minutos).. solo de espera.. lo cual no me deja del todo conforme..

como dije probe varios lapsos y vueltas.. a 5 segundos.. cada 500 vueltas.. o 10 segundos cada 500 y cada 1000 vueltas.. pero el error se daba.. mas seguido..

osea ahora anda bien y con esto salgo del paso.. pero.. quisiera saber si se te ocurre alguna otra cosa.. para mejorarlo..

desde ya muchas gracias.
  #10 (permalink)  
Antiguo 02/12/2013, 02:48
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: APPLET enviar datos a php

Cita:
o si tienes acceso al PHP modificarlo para que en vez de aceptar llamadas con información de un registro admita bloques de registros.
Con esto me refería a que si tú puedes cambiar la página PHP que recibe datos, en vez de aceptar los datos de un sólo registro, hazlo para que reciba varios.

Por ejemplo, si ahora recibieras

id:
nombre:
apellidos:

añadirías como nuevos parámetros
id2:
nombre2:
apellidos2:

y así hasta un número aceptable, ten en cuenta que el contenido de una llamada no puede ser infinito, y que crear cientos de parámetros tampoco es una buena opción.

La solución ideal sería enviar un xml y procesarlo en el PHP
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #11 (permalink)  
Antiguo 02/12/2013, 16:06
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: APPLET enviar datos a php

Compa te cuento, yo me comunique con mi pagina por medio de javascript y de ahi hago lo que necesito en php yo me comunico de la siguiente forma:

Código Java:
Ver original
  1. JSObject obj            = JSObject.getWindow(japplet.this);
  2. codigo                     = (String) obj.eval("getCodigoActual()");
  3. //donde getCodigoActual es una funcion en javascript que me hace un return de un valor

ahora para enviar datos utilice las siguientes lineas

Código Java:
Ver original
  1. String enviarMensaje        = "";
  2.                     if(respuesta!=null && respuesta.trim().toUpperCase().equals("OK")) {
  3.                         enviarMensaje           = "Su foto se ha guardado con éxito";
  4.                     } else {
  5.                         enviarMensaje           = "Su foto no se ha podido almacenar correctamente vuelva a intentarlo";
  6.                     }
  7.                     getAppletContext().showDocument(new URL("javascript:getAsignaFoto('"+enviarMensaje+"');"));

espero te sirva cualquier cosa quedo atento
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #12 (permalink)  
Antiguo 03/12/2013, 17:34
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: APPLET enviar datos a php

xerelo.. esta bueno lo que me decis.. salvo que no lo veo.. mucho para lo que queria hacer.. ya que quria hacer un applet multiuso.. y si bien podra servir para muchos... xls.. para otros tal vez no me sirva... por la cantidad de datos que se podrian menejar...

pero ojo.. lo digo asi a ojo.. tendria que probarlo.. y de hecho.. lo voy a probar a ver que tal sale..

miguec04... no habia pensado.. hacerlo en js.. te cuento.. esto lo hacia de la misma forma antes con javascript.. sin el applet.. pero.. como los xls a veces son grandes.. no podia manipularlos con la clase phpExcel por lo cual.. me veia obligado a pedirle a los clìentes que transformaran sus archivos a txt... pero.. el tema de las llamadas.. no me causaba problemas como los que tengo.. ahora..

por lo tanto.. podria ser que funcione.. gracias por la idea.. y ni bien pueda probarlo.. lo hago e informo cual fue la mejor opcion.

abrazo y gracias a todos..
  #13 (permalink)  
Antiguo 03/12/2013, 20:20
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: APPLET enviar datos a php

Pues yo lo que aria son objetos json y los enviaria, o una cadena de caracteres que yo defina con un formato donde separe con comas o guiones... etc etc por ejemplo o un metodo ajax que pueda llamar desde el applet y que este metodo me ejecute el php por el ajax que codifique, etc etc etc hay muchas opciones, pienso yo.

Un abrazo espero te sirva
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #14 (permalink)  
Antiguo 04/12/2013, 03:23
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: APPLET enviar datos a php

Cuando me refería a tocar el PHP para que acepte más de un registro en cada llamada, no quería decir que sólo hubiera una forma de enviar esos datos en bloques, hay muchas formas, lo importante es reducir el número de llamadas.

Se puede hacer añadiendo muchos parámetros, que es la más sencilla pero la menos correcta, pasándole un xml, o como dice miguec04 pasando objetos JSON o el equivalente casero con guiones, comas, etc.

Incluso podrías usar webservices o un subir un fichero de texto con los datos que quieras y que sea PHP el que procese ese fichero.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: applet, metodo, php, string
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 02:44.