Page 1 of 1

JDK 17, Spring Boot-Version 3.2.5. Die Datei lesen und in die Antwort streamen. Angabe von 0-Byte-Daten

Posted: 14 Jan 2025, 11:14
by Guest
JDK 17, Spring Boot Version 3.2.5. Die Datei lesen und in die Antwort streamen. Gibt 0-Byte-Daten an. Hier sind die Codedetails:-

Code: Select all

File file = new File(filePath);
//Added permission for file path
file.setExecutable(false);
file.setReadable(true);
file.setWritable(true);

// Create StreamingResponseBody
StreamingResponseBody responseBody = outputStream -> {
// Read file content
Path path = Paths.get(filePath);
byte[] data = Files.readAllBytes(path);
try (InputStream inputStream = new ByteArrayInputStream(data)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
throw new RuntimeException("Error streaming PDF", e);
} finally {
deleteUserPrintDir(filePath, file);
data=null;
path=null;
}
};

return ResponseEntity.ok().header("Content-Disposition",
"attachment; fileName=\"" + file.getName() + "\"")
.contentType(org.springframework.http.MediaType.APPLICATION_PDF)
.body(responseBody);
0 kb als Antwort geben. Vielen Dank im Voraus, wenn jemand dabei helfen kann. Es gibt eine Antwort von 200, aber auf Postman wird der Fehler beim Laden der Datei angezeigt.