Heim >Java >javaLernprogramm >Wie behebt man Datei-Download-Fehler in Ihrem Spring Boot REST-Dienst?

Wie behebt man Datei-Download-Fehler in Ihrem Spring Boot REST-Dienst?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 04:40:01543Durchsuche

How to Fix File Download Errors in Your Spring Boot REST Service?

Probleme beim Herunterladen von Dateien im Spring Boot Rest Service lösen

Bei Dateidownloads von Spring Boot REST-Diensten können Fehler auftreten. Um diese Probleme zu beheben, untersuchen wir einen bereitgestellten serverseitigen Code:

<code class="java">@RequestMapping(path="/downloadFile",method=RequestMethod.GET)
public  ResponseEntity<InputStreamReader> downloadDocument(...) {
    ...
    return ResponseEntity.ok()...body(i);
}</code>

Identifizieren des Problems

Das Problem kann bei der Verwendung von InputStreamReader liegen, was zu Browserfehlern führen kann Downloads schlagen fehl.

Lösungsoptionen

  1. Verwenden einer InputStreamResource:
<code class="java">@RequestMapping(path="/download",method=RequestMethod.GET)
public ResponseEntity<Resource> download(...) {
    ...
    InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
    return ResponseEntity.ok()...body(resource);
}</code>
  1. Verwendung einer ByteArrayResource:
<code class="java">@RequestMapping(path="/download",method=RequestMethod.GET)
public ResponseEntity<Resource> download(...) {
    ...
    ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path));
    return ResponseEntity.ok()...body(resource);
}</code>

Implementierungsdetails

  • InputStreamResource ermöglicht die direkte Verwendung von InputStream, wird jedoch empfohlen Nicht für große Dateien zu verwenden.
  • ByteArrayResource lädt die gesamte Datei in den Speicher und eignet sich besser für kleine Dateien.

Durch die Implementierung einer dieser Lösungen sollte der Dateidownload erfolgreich verlaufen der Spring Boot REST-Dienst.

Das obige ist der detaillierte Inhalt vonWie behebt man Datei-Download-Fehler in Ihrem Spring Boot REST-Dienst?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn