Dans JAX-RS, pour permettre à l’utilisateur de télécharger un fichier, annotez la méthode avec
@Produces (" text/plain ")
:
-
Mettez @ Produces («text/plain») sur la méthode de service, avec un
Response
type de retour. Cela signifie que la sortie est un fichier texte.
-
Définissez « Content-Disposition » dans l’en-tête de réponse pour indiquer au navigateur de s’afficher
une boîte de téléchargement pour l’utilisateur à télécharger.
1. Télécharger le fichier dans JAX-RS
Voir un exemple complet pour télécharger un fichier texte dans JAX-RS.
import java.io.File; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.ResponseBuilder; @Path("/file") public class FileService { private static final String FILE__PATH = "c:\\file.log"; @GET @Path("/get") @Produces("text/plain") public Response getFile() { File file = new File(FILE__PATH); ResponseBuilder response = Response.ok((Object) file); response.header("Content-Disposition", "attachment; filename=\"file__from__server.log\""); return response.build(); } }
2. Démo
Déployez au-dessus du service JAX-RS, accédez à ce modèle d’URI: “ /file/get “.
Figure: le fichier texte « c: \\ test.log » du serveur est l’invite à télécharger, avec un nouveau nom de fichier « file from server.log »
Télécharger le code source
Téléchargez-le - lien://wp-content/uploads/2011/07/JAX-RS-Download-TextFile-Example.zip[JAX-RS-Download-TextFile-Example.zip](6 Ko)
Références
@Produces JavaDoc]. Wiki, liste complète des MIME
lien://tag/download/[téléchargement] jax-rs