我正在尝试创建一个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();
问题是它没有下载文件,只是在浏览器中显示它。
答案 0 :(得分:2)
您需要查看Content-Disposition
标头。这里解释一下:http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1 - 基本上它允许你指定一个"提示"到浏览器处理文件作为下载。