Cita:
Iniciado por Denis127_2 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(1, fich.getUno());
ps.setString(2, fich.getDos());
ps.setString(3, fich.getTres());
ps.setString(4, fich.getCuatro());
ps.setString(5, fich.getCinco());
ps.setString(6, fich.getSeis());
ps.setString(7, fich.getSiete());
int res = ps.executeUpdate();
if(res > 0)
f = true;
ps.close();
c.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return f;
}
}
Y este es mi Servlet:
Código PHP:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
dirUploadFiles = getServletContext().getRealPath( getServletContext().getInitParameter( "dirUploadFiles" ) );
if( ServletFileUpload.isMultipartContent( request ) ){
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload( factory );
// upload.setSizeMax( new Long( getServletContext().getInitParameter( "maxFileSize" ) ).longValue() ); // 1024 x 300 = 307200 bytes = 300 Kb
List listUploadFiles = null;
FileItem item = null;
try{
listUploadFiles = upload.parseRequest( request );
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() > 0 ){
// 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.substring( nombre.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<tokenCount; idx++){
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