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

Pedir archivo en aplicación Web

Estas en el tema de Pedir archivo en aplicación Web en el foro de Java en Foros del Web. Hola a todos amigos del Web, espero que alguien me pueda ayudar con este tema, mi cuestión es la siguiente ya he programado algunas aplicaciones ...
  #1 (permalink)  
Antiguo 17/03/2011, 15:27
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años, 7 meses
Puntos: 0
Pedir archivo en aplicación Web

Hola a todos amigos del Web, espero que alguien me pueda ayudar con este tema, mi cuestión es la siguiente ya he programado algunas aplicaciones para la empresa en la que trabajo, soy algo novato pero tengo algunos conocimientos, mi problema es que me acaban de pedir una aplicación sobre la cual no tengo ni idea de donde empezar, obviamente mi jefe sabe esto pero aun así quiere que lo inetnte hacer para seguir avanzando con esto de la programación, la cosa es que lo que me pidió fue que haga la aplicación es poner un campo y un botón el cual sea como el clásico Examinar que busca entra a las unidades del usuario y el usuario tiene que elegir un archivo para que la aplicación pueda manejarlo y sacar los datos para exportarlos a una Base de Datos ya que los datos vienen desordenados, yo he trabajado con NetBeans, y en este con JSP, Servlets, Beans y DAOS, puesto que lo que hacen las aplicaciones que manejo son ingresar registros, editarlos, borrarlos, pero no se que se tenga que hacer para pedir un archivo y poder manejarlo, de primera instancia me imagino que se tiene que poner un botón el cual invoque al servlet que pida el archivo pero que se tiene que hacer para pedir el archivo.

Ojala alguien me pueda dar alguna idea para realizar esto.

Les agradezco mucho a todos
  #2 (permalink)  
Antiguo 22/03/2011, 03:34
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Pedir archivo en aplicación Web

tienes que hacer un formulario de tipo multipart, con input de tipo file, trabajar con FileUpload de Apache Commons en el Servlet y almacenarlo como un BLOB en la base de datos.

Busca ejemplos con las cuatro palabras clave que he mencionado y encontrarás muchos de cada!

Suerte!
  #3 (permalink)  
Antiguo 28/03/2011, 18:09
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Pedir archivo en aplicación Web

Cita:
Iniciado por Denis127_2 Ver Mensaje
tienes que hacer un formulario de tipo multipart, con input de tipo file, trabajar con FileUpload de Apache Commons en el Servlet y almacenarlo como un BLOB en la base de datos.

Busca ejemplos con las cuatro palabras clave que he mencionado y encontrarás muchos de cada!

Suerte!
Hola Muchas gracias por la ayuda empezaré a buscar a ver que puedo aprender

Y de nuevo gracias
  #4 (permalink)  
Antiguo 02/04/2011, 11:43
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Pedir archivo en aplicación Web

Cita:
Iniciado por Denis127_2 Ver Mensaje
tienes que hacer un formulario de tipo multipart, con input de tipo file, trabajar con FileUpload de Apache Commons en el Servlet y almacenarlo como un BLOB en la base de datos.

Busca ejemplos con las cuatro palabras clave que he mencionado y encontrarás muchos de cada!

Suerte!
Hola, muchismas gracias me ha servido mucho lo que me recomendaste y en base a lo que he encontrado estoy resolviendo mi problema, pero me he encontrado con otro bache a ver si me puedes ayudar, o alguien mas que me pudiera ayudar, verán lo que trataba de hacer no era guardar precisamente el archivo, sino extraer la informacion del archivo e ingresarla a los campos de una tabla, ya estoy manejando el archivo y extraje la informacion, ademas de que la estoy insertando en la base de datos, pero tengo dos problemas, primero les voy a dar los detalles de la forma como viene el archivo:

Es un TXT y tiene la siguiente estructura:

PTC01243100 00442MXP 491.69NO SE ENCONTRO NOMBRE 95303
PTC01242002 00442MXP 116.30NO SE ENCONTRO NOMBRE 72503

De este archivo todavía faltan varios registros y varia el número de registros usé un StringTokenizer para extraer por palabras, pero me acaban de comentar que lo único que se tiene que insertar en la base son los números con el punto sin el NO por ejemplo el 491.69 solo que lo jala con la palabra NO y tambien el último número mi pregunta es como le hago para que exttraiga solo los números, además cuando lo intento insertar a la base me lo inserta de forma diferente a la que quiero, por ejemplo les pongo la estructura de mi base de datos y como necesito que lo inserte

tabla archivo
campo uno--------campo dos
95303--------------491.69
72503--------------116.30

Pero no lo esta insertando así, la prueba que hice fue con todos los datos y en vez de hacer eso inserta así

campo uno--------campo dos
95303--------------95303
491.69NO----------491.69NO
72503--------------72503
116.30NO---------116.30NO

Les pongo mi código

Este es mi JSP:
Código PHP:
<html>
    <
head>
        <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <
title>JSP Page</title>
    </
head>
    <
body>
        <
FORM method="POST" enctype='multipart/form-data' ACTION="PruebaFichServlet">
      
Enviar el fichero:
      <
INPUT NAME="fichero_usuario"
    
TYPE="file">
      <
INPUT TYPE="submit"
    
VALUE="Enviar fichero">
      </
FORM>

    </
body>
</
html
Estos son mis Beans:
Código PHP:
package Beans;

/**
 *
 * @author Jorge Lopez
 */
public class PruebaFich {

    private 
String uno;

    public 
String getUno(){
        return 
this.uno;
    }

    public 
void setUno(String uno){
        
this.uno uno;
    }
    
    private 
String dos;

    public 
String getDos(){
        return 
this.dos;
    }

    public 
void setDos(String dos){
        
this.dos dos;
    }
    
    private 
String tres;

    public 
String getTres(){
        return 
this.tres;
    }

    public 
void setTres(String tres){
        
this.tres tres;
    }
    
    private 
String cuatro;

    public 
String getCuatro(){
        return 
this.cuatro;
    }

    public 
void setCuatro(String cuatro){
        
this.cuatro cuatro;
    }
    
    private 
String cinco;

    public 
String getCinco(){
        return 
this.cinco;
    }

    public 
void setCinco(String cinco){
        
this.cinco cinco;
    }
    
    private 
String seis;

    public 
String getSeis(){
        return 
this.seis;
    }

    public 
void setSeis(String seis){
        
this.seis seis;
    }
    
    private 
String siete;

    public 
String getSiete(){
        return 
this.siete;
    }

    public 
void setSiete(String siete){
        
this.siete siete;
    }


Este es mi DAO:
Código PHP:
import Conexion.ConexionBD;
import Beans.PruebaFich;
import java.sql.*;
/**
 *
 * @author Jorge Lopez
 */
public class FichDAO {

    public 
boolean insertar(PruebaFich fich)
    {
        
boolean f false;
        try
        {
            
ConexionBD conn = new ConexionBD();
            
Connection c conn.getConexion();
            
String sql "insert into archivo(uno, dos, tres, cuatro, cinco, seis, siete) "
                       
"values (?,?,?,?,?,?,?)";
            
PreparedStatement ps c.prepareStatement(sql);
            
ps.setString(1fich.getUno());
            
ps.setString(2fich.getDos());
            
ps.setString(3fich.getTres());
            
ps.setString(4fich.getCuatro());
            
ps.setString(5fich.getCinco());
            
ps.setString(6fich.getSeis());
            
ps.setString(7fich.getSiete());
            
int res ps.executeUpdate();
            if(
res 0)
                
true;
            
ps.close();
            
c.close();
        }
        catch(
Exception e)
        {
            
e.printStackTrace();
        }
        return 
f;
    }


Y este es mi Servlet:
Código PHP:
protected void processRequest(HttpServletRequest requestHttpServletResponse response)
    
throws ServletExceptionIOException {
        
        
response.setContentType("text/html;charset=UTF-8");
        
PrintWriter out response.getWriter();

        
dirUploadFiles getServletContext().getRealPathgetServletContext().getInitParameter"dirUploadFiles" ) );
        if( 
ServletFileUpload.isMultipartContentrequest ) ){

        
FileItemFactory factory = new DiskFileItemFactory();
        
ServletFileUpload upload = new ServletFileUploadfactory );
       
// upload.setSizeMax( new Long( getServletContext().getInitParameter( "maxFileSize" ) ).longValue() ); // 1024 x 300 = 307200 bytes = 300 Kb

        
List listUploadFiles null;
        
FileItem item null;

        try{

        
listUploadFiles upload.parseRequestrequest );
        
Iterator it listUploadFiles.iterator();
        while( 
it.hasNext() ){
        
item = ( FileItem it.next();
        
// Evalua si el campo es de tipo file, para subir al servidor
        
if( !item.isFormField() ){
        
// Verifica si el archivo es > 0
        
if( item.getSize() > ){
        
// Obtiene el nombre del archivo
        
String nombre item.getName();
        
// Obtiene el tipo de archivo
        
String tipo item.getContentType();
        
// Obtiene el tamaño del archivo
        
long tamanio item.getSize();
        
// Obtiene la extension
        
String extension nombre.substringnombre.lastIndexOf"." ) );
        
String datos item.getString();

        
out.println"Nombre: " nombre "<br>");
        
out.println"Tipo: " tipo "<br>");
        
out.println"Extension: " extension "<br>");
        
System.out.println"Tamaño: " tamanio "");
        
System.out.println"?: " datos "");

        
Daos.FichDAO fdao= new Daos.FichDAO();
        
Beans.PruebaFich bfich= new Beans.PruebaFich();

        
Vector vector = new Vector();
        
int idx 0;
        
int tokenCount;
        
String words[] = new String [40000];
        
StringTokenizer st = new StringTokenizer(datos);
        
tokenCount st.countTokens();
        
System.out.println("Number of tokens = " tokenCount);
        while (
st.hasMoreTokens()){
        
words[idx] = st.nextToken();
        
System.out.println(words[idx]);
        
idx++;
        }
        for (
idx=0;idx<tokenCountidx++){
        
vector.addElement(words[idx]);
        
String dataStore vector.elementAt(idx).toString();
        
System.out.println("Data en el Vector : " dataStore "pos "idx);
        
bfich.setUno(dataStore);
        
bfich.setDos(dataStore);
        
bfich.setTres(dataStore);
        
bfich.setCuatro(dataStore);
        
bfich.setCinco(dataStore);
        
bfich.setSeis(dataStore);
        
bfich.setSiete(dataStore);
        
fdao.insertar(bfich);

        
System.out.println("registros insertados");
        }

        }
        }
        }

        }catch( 
FileUploadException e ){

        
e.printStackTrace();
        }catch (
Exception e){
        
// poner respuesta = false; si existe alguna problema
        
e.printStackTrace();
        }
        }
        
out.println"Fin de la operacion! ;)" );
        
out.close();



    } 
Me falta el codigo de la Conexion pero eso no creo que haga falta
Por favor si alguien me puede ayudar le agradeceré mucho

Última edición por jorgelo82; 04/04/2011 a las 10:24

Etiquetas: jsp-servlets, pedir
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 22:10.