Foro de elhacker.net

Programación => Java => Mensaje iniciado por: patiuxi en 2 Diciembre 2013, 04:09 am



Título: Guardar parametros de un formulario (Subir Archivo)
Publicado por: patiuxi en 2 Diciembre 2013, 04:09 am
Bueno Pues primero que nada mucho gusto soy nueva por aqui :3 Tengo un pequeño problema y me gustaria que pudieran prestarme un poco de su ayuda.

El caso es que estoy haciendo una aplicacion web de una butique y tengo que guardar los datos de los productos etc. Uno de esos datos es una imagen, al principio batalle un poco pero finalmente lo logre, solo que los campos de tipo txt del formulario aparecian como null nuevamente pude solucionando guardandolo en un array de byte (byte[]) Ahora el problema: Quiero guardar estos parametros en un array (o si es que se puede de otra manera) para despues subirlo a la BD, lo intente pero solo me guardaba el ultimo registro, les agradeceria mucho si pudieran ayudarme :3
Mi codigo (la parte que guarda la imagen):
Código
  1. boolean subido = false;
  2. boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
  3.  
  4. if(isMultiPart){
  5. DiskFileItemFactory factory = new DiskFileItemFactory();
  6. ServletFileUpload upload = new ServletFileUpload(factory);
  7. try{
  8. FileItemIterator iterator = upload.getItemIterator(request);
  9.  
  10. while(iterator.hasNext()){
  11. FileItemStream item = iterator.next();
  12.  
  13. if (item.isFormField()) {
  14. nombre = item.getFieldName();
  15. InputStream is = item.openStream();
  16. byte[] b = new byte[is.available()];
  17. is.read(b);
  18. String valor = new String(b);
  19.  
  20. }else{
  21. String ubicacionArchivo = "H:/ProyectoBoutique/Boutique/WebContent/css/images/";
  22. File file = new File(ubicacionArchivo,item.getName());
  23. if(! file.exists())file.mkdir();
  24.  
  25. File savedFile = new File(file.getAbsolutePath()+File.separator + item.getName());
  26. FileOutputStream fos = new FileOutputStream(savedFile);
  27. InputStream is = item.openStream();
  28. int x = 0;
  29. byte[] b = new byte[1024];
  30. while((x = is.read(b))!= -1){
  31. fos.write(b, 0, x);
  32. }
  33. fos.flush();
  34. fos.close();
  35. subido = true;
  36. if(subido){
  37. out.write("Archivo se subio correctamente");
  38. }else{
  39. out.write("No se ha podido subir el archivo");
  40. }
  41. }
  42. }
  43.  
  44.  
  45. }catch(FileUploadException  ex){
  46. out.write("Error al subir el archivo" + ex.getMessage());
  47. }catch(NullPointerException e){
  48. e.getMessage();
  49. }
  50.  
  51. subido = false;
  52.  
  53. }


Título: Re: Guardar parametros de un formulario (Subir Archivo)
Publicado por: ThinkByYourself en 4 Diciembre 2013, 01:06 am
Hola patiuxi.
Puedes hacer uso de la clase "ArrayList<Object>" para guardar cualquier tipo de dato en él. Es mejor que un array sin más (menos eficiente, pero mucho más cómodo de manejar, en tu caso creo que vale la pena).
Desde ella puedes jugar con los métodos ".add()", ".get()" y ".remove()" (con los parámetros adecuados, claro).
Y no hace falta que te hagas pasar por mujer (si lo eres de verdad, sé bienvenida al foro y disculpa mis sospechas), alguien suele responder, tarde o temprano.


Título: Re: Guardar parametros de un formulario (Subir Archivo)
Publicado por: patiuxi en 4 Diciembre 2013, 02:39 am
Gracias por la respuesta, este problema lo solucione ayer utilizando un hashmap, de todas maneras gracias. Y dejame decirte algo, me parece muy grosero de tu parte el hecho de dudar que soy mujer. De nuevo muchas gracias por la respuesta


Título: Re: Guardar parametros de un formulario (Subir Archivo)
Publicado por: ThinkByYourself en 4 Diciembre 2013, 12:25 pm
HashMap es mejor incluso que ArrayList para tu caso (si buscas por "Colecciones" encontrarás info de este grupo de clases). Acepta mis disculpas, burda manera la mía de espantar al ser más bello de la naturaleza de estos lares (pero por poner letras rosas no eres más mujer, y dificultas la lectura). No volverá a ocurrir ni contigo ni con nadie, prometido.