BP-766
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/core/controller/BaseWebService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/core/controller/BaseWebService.java
index a35bd86..06532fa 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/core/controller/BaseWebService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/core/controller/BaseWebService.java
@@ -13,7 +13,10 @@
package org.eclipse.openk.core.controller;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
import java.util.Arrays;
+import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -131,20 +134,40 @@
changeUserName = JwtHelper.getJwtPayload(token).getPreferredUsername();
Object o = invokable.invoke(changeUserName);
File f = (File) o;
-
String[] arrString = f.getName().split("\\.");
String fileType = arrString[arrString.length - 1];
String mediaType = this.getMediaTypeForFile(fileType);
- ResponseBuilder responseBuilder = Response.status(200).entity(f).type(mediaType);
- Response response = responseBuilder.build();
-
- response.getHeaders().putSingle("Content-Length", f.length());
- response.getHeaders().putSingle("Content-Disposition", "attachment; filename=" + f.getName());
- response.getHeaders().putSingle("Content-Type", "application/octet-stream");
-
+ InputStream finput = null;
+ try {
+ finput = new FileInputStream(f);
+ byte[] bytes = new byte[(int) f.length()];
+ finput.read(bytes, 0, bytes.length);
- return response;
+ String byteString = Base64.getEncoder().encodeToString(bytes);
+
+ ResponseBuilder responseBuilder = Response.status(200).entity(byteString).type(mediaType);
+ return responseBuilder.build();
+ } catch (Exception e) {
+ logger.error(e, e);
+ throw e;
+
+ } finally {
+ if (finput != null) {
+ finput.close();
+ }
+ }
+
+// String[] arrString = f.getName().split("\\.");
+// String fileType = arrString[arrString.length - 1];
+// String mediaType = this.getMediaTypeForFile(fileType);
+//
+// ResponseBuilder responseBuilder = Response.status(200).entity(f).type(mediaType);
+// Response response = responseBuilder.build();
+//
+// response.getHeaders().putSingle("Content-Length", f.length());
+// response.getHeaders().putSingle("Content-Disposition", "attachment; filename=" + f.getName());
+// response.getHeaders().putSingle("Content-Type", "application/octet-stream");
} catch (HttpStatusException e) {
SpErrorEntry ee = SpExceptionEnum.DEFAULT_EXCEPTION.getEntry();
@@ -229,8 +252,8 @@
private String getMediaTypeForFile(String fileType) {
String mediaType = "";
if (fileType.equalsIgnoreCase("xlsx")) {
- //mediaType = ReportRestService.EXCEL_MEDIA_TYPE;
- mediaType="application/octet-stream";
+ // mediaType = ReportRestService.EXCEL_MEDIA_TYPE;
+ mediaType = "application/octet-stream";
} else if (fileType.equalsIgnoreCase("pdf")) {
mediaType = MediaType.APPLICATION_JSON;
}
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java
index 29731ef..358222e 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java
@@ -137,9 +137,9 @@
} catch (SpException spException) {
logger.error(spException, spException);
-// throw new IOException();
- return Response.status(HttpStatus.BAD_REQUEST.value()).entity(spException).type(MediaType.APPLICATION_JSON)
- .build();
+ throw new IOException();
+// return Response.status(HttpStatus.BAD_REQUEST.value()).entity(spException).type(MediaType.APPLICATION_JSON)
+// .build();
}
}