Hola, quería devolver un archivo desde un servidor resteasy. Para este propósito, tengo un enlace en el lado del cliente que está llamando a un servicio de descanso con ajax. Quiero devolver el archivo en el servicio de descanso. Probé estos dos bloques de código, pero ninguno funcionó como yo quería.Archivo de devolución del servidor Resteasy
@POST
@Path("/exportContacts")
public Response exportContacts(@Context HttpServletRequest request, @QueryParam("alt") String alt) throws IOException {
String sb = "Sedat BaSAR";
byte[] outputByte = sb.getBytes();
return Response
.ok(outputByte, MediaType.APPLICATION_OCTET_STREAM)
.header("content-disposition","attachment; filename = temp.csv")
.build();
}
.
@POST
@Path("/exportContacts")
public Response exportContacts(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam("alt") String alt) throws IOException {
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=temp.csv");
ServletOutputStream out = response.getOutputStream();
try {
StringBuilder sb = new StringBuilder("Sedat BaSAR");
InputStream in =
new ByteArrayInputStream(sb.toString().getBytes("UTF-8"));
byte[] outputByte = sb.getBytes();
//copy binary contect to output stream
while (in.read(outputByte, 0, 4096) != -1) {
out.write(outputByte, 0, 4096);
}
in.close();
out.flush();
out.close();
} catch (Exception e) {
}
return null;
}
Cuando me fui de la consola de Firebug, estos dos bloques de código escribió "Sedat Basar" en respuesta a la llamada AJAX. Sin embargo, quiero devolver "Sedat BaSAR" como un archivo. ¿Cómo puedo hacer eso?
Gracias de antemano.
acabaste la búsqueda de una solución a esto? – rabs