From ac0b4e9704b3a774e090106ef5c864da142a9706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garcia=20Nu=C3=B1ez?= Date: Fri, 3 Jan 2020 20:32:47 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20bot=C3=B3n=20para=20descargar=20?= =?UTF-8?q?imagenes=20de=20pruebas=20m=C3=A9dicas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docroot/medicaltest/MedicalTests.xhtml | 6 +++- .../medicalTest/MedicalTestMBean.java | 34 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml b/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml index 42514b7..4d7fad6 100644 --- a/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml +++ b/1.sources/MyHealth/docroot/medicaltest/MedicalTests.xhtml @@ -95,13 +95,17 @@
- +
+

+ + +

diff --git a/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java b/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java index 3743ad4..892f226 100644 --- a/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java +++ b/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java @@ -1,5 +1,6 @@ package managedbean.medicalTest; +import java.io.ByteArrayInputStream; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalTime; @@ -15,6 +16,8 @@ import javax.inject.Named; import org.primefaces.event.FileUploadEvent; import org.primefaces.event.SelectEvent; +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; import org.primefaces.model.UploadedFile; import TO.MedicalTestTO; @@ -86,14 +89,14 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable { } public void uploadDataListener(FileUploadEvent event) { - UploadedFile uploadedFile = event.getFile(); - String fileName = uploadedFile.getFileName(); - String contentType = uploadedFile.getContentType(); - byte[] contents = uploadedFile.getContents(); + UploadedFile uploadedFile = event.getFile(); + // String fileName = uploadedFile.getFileName(); + String contentType = uploadedFile.getContentType(); + byte[] contents = uploadedFile.getContents(); if (contents != null && contents.length > 0) { this.selected.setHighresimage(String.format("data:%s;base64,%s", contentType, Base64.getEncoder().encodeToString(contents))); - + this.getRemoteManagerMedicalTest().addImage(this.selected.getId(), this.selected.getHighresimage()); this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Imagen guardada", "La imagen se ha guardado correctamente."); @@ -101,7 +104,24 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable { this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Imagen vacía", "La imagen que itenta subir está vacía o no puede procesarse."); } } - + + public StreamedContent getImageDownload() { + DefaultStreamedContent dsc = null; + try { + String[] data = this.selected.getHighresimage().split(","); + String contentType = data[0]; + + // Obtenemos la extension del contentType + String extension = contentType.split(";")[0].split("/")[1]; + String base64Image = data[1]; + + dsc = new DefaultStreamedContent(new ByteArrayInputStream(javax.xml.bind.DatatypeConverter.parseBase64Binary(base64Image)), contentType, "Imagen.".concat(extension)); + } catch (Exception e) { + this.manageException(e); + } + return dsc; + } + public UploadedFile getImageUpload() { return imageUpload; } @@ -113,7 +133,7 @@ public class MedicalTestMBean extends ManagedBeanBase implements Serializable { public void removeImage() { this.selected.setHighresimage(null); getRemoteManagerMedicalTest().removeImage(this.selected.getId()); - //this.loadMedicalTests(); + // this.loadMedicalTests(); this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Imagen eliminada", "La imagen se ha eliminado correctamente."); }