2017-02-23 9 views
0

Ich muss mehrere Dateien auf die Client-Seite in einem Aufruf proplizieren, ich möchte diese Dateien nicht in eine Zip setzen. Dateien, die an den Client gesendet werden, sind klein, nur wenige ko. Ich benutze JAX-RS für restful Dienste, und der Client verwendet Javascript, um die Antwort zu verarbeiten. sollte ich es als Dateien oder als Streams senden, meine Dateien sind Miniaturansichten, meine Clients sind mobile Geräte, und sie benötigen diese Bilder, um sie anzuzeigen.Restfull mehrere Dateien herunterladen

ich eine URL bietet bereits eine einzelne Datei zu erhalten:

@GET 
@Produces(MediaType.APPLICATION_OCTET_STREAM) 
public Response downloadFile(String fileName) { 
    File file = ... // Find your file 
    return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM) 
     .header("Content-Disposition", "attachment; filename=\"" + file.getName() + "\"") 
     .build(); 
} 

Kann ich eine Liste von Dateien Response.ok (myList) gesendet, und die reponse des Client-Prozess auf diese Weise konstruiert ist, kann?

+0

Was ist eine Liste von Base64 codiert Dateiinhalte indiziert durch den Dateinamen als Antwort zurückgibt? –

+0

was meinst du genau? Ich kodiere den Inhalt der ganzen Dateien in einer base64-kodierten Datei, und für jeden kodierten Teil beziehe ich ihn mit dem Dateinamen base64, der auch kodiert ist, meinst du das? Wenn das so ist, wie teile ich den Inhalt eines Bildes und seinen Dateinamen ein? So kann der Client den gesamten Inhalt dekodieren und die Bilder korrekt extrahieren. –

+1

Sie geben ein JSON-Objekt mit dem Dateinamen als Schlüssel und dem base64-codierten Dateiinhalt als Wert zurück. Jeder Eintrag ist eine Datei. –

Antwort

0

Sie können eine Liste mit Base64-codierten Dateiinhalten zurückgeben, die mit dem Dateinamen als Antwort indiziert sind.

Beispiel:

{ 
    "file1.txt": "YW55IGNvbnRlbnQ=", 
    "file2.txt": ... 
}