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

Copiar imagen con java

Estas en el tema de Copiar imagen con java en el foro de Java en Foros del Web. Intento en un formulario que selecciones una imagen con un inputFile, para después presionar el botón "Change image" y se copie el archivo seleccionado a ...
  #1 (permalink)  
Antiguo 05/12/2013, 03:17
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 0
Copiar imagen con java

Intento en un formulario que selecciones una imagen con un inputFile, para después presionar el botón "Change image" y se copie el archivo seleccionado a la ruta del servidor "resources/images", al pulsar el botón recarga la página pero no lo hace

En un formulario tengo algo como esto

Código HTML:
Ver original
  1. <h:form enctype="multipart/form-data">
  2.                     <h:inputFile value="#{mybean.imageSelected}"/>
  3.                     <h:commandButton value="Change image" action="#{mybean.changeImage()}"/>
  4.                 </h:form>

en mybean tengo esto:
Código Java:
Ver original
  1. Variable String imageSelected con sus get/set
  2.  
  3.     public void changeImage()
  4.     {
  5.         File origen = new File(imageSelected);
  6.         File destino = new File("/resources/images/"+(nombreDistintoDeLaImagen);
  7.  
  8.         try
  9.         {
  10.             InputStream in = new FileInputStream(origen);
  11.             OutputStream out = new FileOutputStream(destino);
  12.            
  13.             byte[] buf = new byte[1024];
  14.             int len;
  15.  
  16.             while ((len = in.read(buf)) > 0)
  17.             {
  18.               out.write(buf, 0, len);
  19.             }
  20.  
  21.             in.close();
  22.             out.close();
  23.            
  24.         }
  25.         catch(IOException e)
  26.         {}
  27.     }

Última edición por NeoAres; 05/12/2013 a las 03:47
  #2 (permalink)  
Antiguo 05/12/2013, 07:27
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años
Puntos: 454
Respuesta: Copiar imagen con java

¿Y si en el catch pones algo está saltando una excepción?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 05/12/2013, 10:41
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Copiar imagen con java

Cita:
Iniciado por chuidiang Ver Mensaje
¿Y si en el catch pones algo está saltando una excepción?

Se bueno.
Con el modo debug puse para que se parase dentro del catch si pasaba, y sí, salta la excepción.

Indagando por google he visto que quizás el archivo que se recibe desde el formulario se debe recoger como una variable Part, pero con inmenso número de pruebas no he sido capaz de que me funcionase
  #4 (permalink)  
Antiguo 05/12/2013, 11:04
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años
Puntos: 454
Respuesta: Copiar imagen con java

¿Nos puedes decir qué excepción es y en qué línea exacta del código salta? Si no, va a parecer un juego de adivinación....

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 05/12/2013, 11:17
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Copiar imagen con java

Cita:
Iniciado por chuidiang Ver Mensaje
¿Nos puedes decir qué excepción es y en qué línea exacta del código salta? Si no, va a parecer un juego de adivinación....

Se bueno.
Perdona xD se me olvidó dar ese detalle, en la primera línea después del try y la excepción la IOException que recoge el catch

Última edición por NeoAres; 05/12/2013 a las 11:25
  #6 (permalink)  
Antiguo 05/12/2013, 12:48
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Copiar imagen con java

He encontrado una solución que funciona (aunque en mi caso aún me queda algo para completar).
Lo encontré aquí, pero haciendo caso al video no a lo escrito.
http://www.ramkitech.com/2013/06/fil...-in-jsf22.html

Código HTML:
Ver original
  1. <h:form enctype="multipart/form-data">
  2.                     <h:inputFile value="#{mybean.file1}"/>
  3.                     <h:commandButton value="Change image" action="#{mybean.upload()}"/>
  4.                 </h:form>

aquí el código de mybean
Código Java:
Ver original
  1. private Part file1;
  2.    
  3.     public Part getFile1()
  4.     {
  5.         return file1;
  6.     }
  7.  
  8.     public void setFile1(Part file1)
  9.     {
  10.         this.file1 = file1;
  11.     }
  12.  
  13.     public void upload()
  14.     {
  15.         try
  16.         {
  17.             file1.write("C:\\carpetaDestino\\waaaaa.png");/* -Hay que poner extensión si el archivo original tenía o si quieres xD
  18. -Destacar que en la página adjunta hay métodos para coger el nombre del archivo original*/
  19.         }
  20.         catch (IOException ex)
  21.         {
  22.             Logger.getLogger(Utils.class.getName()).log(Level.SEVERE, null, ex);
  23.         }
  24.     }

Destaco que si el destino es en raíz ( es decir, en C: directamente por ejemplo) no me lo copia, pero si es en una carpeta sí (carpeta creada ya que no crea carpetas automáticamente), también si existe un archivo con el mismo nombre que el que se intenta copiar se sustituye.


Ahora me queda averiguar que ruta debo poner en el destino (si se puede ) para copiar la imagen dentro de una carpeta del proyecto propio ya que tengo otra cosa que accede a tales imágenes de tal carpeta

Etiquetas: Ninguno
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 17:02.