Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/04/2011, 11:43
jorgelo82
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
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