Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/12/2014, 23:10
jelastic
 
Fecha de Ingreso: diciembre-2014
Ubicación: Lima
Mensajes: 68
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: JSF - FileUpload

Cita:
Iniciado por HackmanC Ver Mensaje

Para obtener el nombre de la carpeta destino podrías probar a usar:
Código:
FacesContext.getCurrentInstance().getExternalContext().getRealPath("/")...
Pero no estoy completamente seguro que funcione bien.

Un detalle adicional que posiblemente tendrías que tomar en cuenta es cambiarle de nombre al archivo final y guardar ese nombre en la base de datos, y solamente guardas el nombre del archivo original en la base de datos como referencia. Por los motivos lógicos como nombre duplicados, caracteres extendidos, etc. El nombre de archivo "Pruebas:Dos.jpg" en Windows no va a funcionar como posiblemente puedas creer inicialmente, aunque es un nombre completamente válido en Unix.

Saludos,
Gracias nuevamente HackmanC, estuve intentando y pude enviar la imagen al servidor con estas lineas de codigo:

Código HTML:
Ver original
  1. public void subirImagen() throws IOException {
  2.         InputStream inputStream = null;
  3.         OutputStream outputStream = null;
  4.         VendedorDao vendedorDao = new VendedorDaoImpl();
  5.         int cod = vendedorDao.getId();
  6.         try {
  7.             ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
  8.             String path = (String) servletContext.getRealPath("/imgEmpleados");
  9.             outputStream = new FileOutputStream(new File(path + "/" + cod + ".jpg"));
  10.             inputStream = this.file.getInputstream();
  11.             int read = 0;
  12.             byte[] bytes = new byte[1024];
  13.             while((read=inputStream.read(bytes)) != -1) {
  14.                 outputStream.write(bytes, 0, read);
  15.             }
  16.             System.out.println("Imagen Subida Correctamente al Servidor en : "+path);
  17.         } catch (Exception e) {
  18.             System.out.println("No se pudo subir la imagen " + e.toString());
  19.         } finally {
  20.             if(inputStream != null) {
  21.                 inputStream.close();
  22.             }
  23.             if(outputStream != null) {
  24.                 outputStream.close();
  25.             }
  26.         }
  27.     }
Este metodo lo llamo en el handleFileUpload().
Pero no me guarda en la carpeta que yo quiero sino en otra que es esta :
C:\Users\Jonathan\workpaceL\.metadata\.plugins\org .eclipse.wst.server.core\tmp2\wtpwebapps\Ferrerter iaWeb\imgEmpleados
y yo quiero que me guarde aqui: C:\Users\Jonathan\workpaceL\FerrerteriaWeb\src\mai n\webapp\imgEmpleados
que se me puede estar escapando, quizas falte algo.
Gracias.