jueves, 5 de octubre de 2017

File Uploader hecho en Java asociado a Web con PHP

Hola a todos, ahora mismo estoy participando de un proyecto el cual tiene tres componentes. A continuación paso a describirlos:


  • 1er Componente: Componente hecho en matlab que recoge datos de sensores y los guarda en un archivo de texto.
  • 2do Componente: Aplicación Web en PHP que muestra los datos recogidos del 1er componente.
  • 3er Componente: Aplicación JAVA que envía el archivo de texto con los datos tomados hacia la aplicación Web.

Bien, en este momento dejaré un ejemplo de como enviar files, hacia una Web hecha en PHP, muy parecido como lo hago en el proyecto, estoy seguro que le ayudará mucho.

Para hacer el componente en JAVA me basé de algo ya hecho, y para no reinventar la rueda, sólo la modifiqué a mi estilo. La Web de la cual me base esta aquí .

Voy a explicar no con mucho detalle lo que hace este componente, pero les ayudará a entenderla.

1) Web PHP

El 1er IF, ayudará a verificar si hay conección
El 2do IF ayudará a verificar si viene un archivo








2) Proyecto JAVA

Este proyecto lo he hecho con el IDE Netbeans y tiene una estructura muy simple.

El archivo MultipartUtility es el que contiene toda la lógica (métodos y librerías) para comprobar conectividad y enviar files a una dirección

El archivo AppFileUploader es el que llama y ejecuta a MultipartUtility


3) Librerías utilizadas

Las librerías que se utilizaron son las que se muestran a continuación.



4) Los métodos de la clase MultipartUtility

verificaConectividad: responde 1 si existe conectividad con la Web en PHP y 0 si no la hay. Recibe como parámetro la ruta.



configuraEnvío: Su nombre de por si te explica que hace, recibe como parámetro el URL y la codificación. Dentro se encuentra la cabecera Content-Type suyo valor es multipart/form-data (cómo vamos a enviar los datos)



addFormField: Ayuda a agregar los encabezados (Content-Disposition) y el tipo de medio que representa el contenido del mensaje (Content-type)



addFilePart: En este método se configuran el encabezado Content-Disposition, que indica si se espera que el contenido se muestre línea en el navegador (página Web) o como un archivo adjunto. Asimismo el encabezado que indica el método que ha sido usado (Content-Transfer-Encoding), para este caso "binary".



addHeaderField: Se configura otras cabeceras, por ejemplo User-Agent para saber el tipo de aplicación, o la cabecera  



Bien, sin más, les dejo el código fuente con todo el proyecto. Lo he probado localmente y con un hosting y funciona perfectamente, sólo deben configurar correctamente las rutas.

Descarguen el proyecto desde aquí.

Hasta la próxima, su amigo Carlos Z.

No hay comentarios:

Publicar un comentario