使用servlet

时间:2015-11-19 18:14:47

标签: java servlets

我正在尝试创建一个html按钮,使用 servlet 将文件从服务器下载到用户的计算机中。这是代码:

String id_archivo = (request.getParameter("idArchivo") == null) ? "" : request.getParameter("idArchivo");
String nombre_archivo = (request.getParameter("nomArchivo") == null) ? "" : request.getParameter("nomArchivo");

//Para que se baje el archivo
response.setContentType("text/plain");
response.setHeader("Content-Disposition", "attachment;filename=\"" + nombre_archivo + "\"");

log.info("Buscando archivo nombre[" + nombre_archivo + "] id[" + id_archivo + "]");
byte[] archivo =getFile(id_archivo, nombre_archivo);
response.setContentLength(archivo.length);
ServletOutputStream sos = response.getOutputStream();

sos.write(archivo);
sos.flush();
sos.close();

问题是它没有下载文件,只是在浏览器中显示它。

1 个答案:

答案 0 :(得分:2)

您需要查看Content-Disposition标头。这里解释一下:http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1 - 基本上它允许你指定一个"提示"到浏览器处理文件作为下载。