论坛首页 Java版 Struts

关于生成PDF文件 直接下载的问题? 请教大家

浏览 1783 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2006-12-26
处理过程:
后台生成PDF
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		Document document = new Document(PageSize.A4, 36,36,36,36);
		ByteArrayOutputStream ba = new ByteArrayOutputStream();
		try{
			PdfWriter writer = PdfWriter.getInstance(document, ba);
			document.open();
			document.add(new Paragraph("Hello World"));
		}catch(DocumentException de){
			de.printStackTrace();
			System.err.println("A Document error:" +de.getMessage());
		}
		document.close();
		response.setContentType("application/pdf");
		response.setContentLength(ba.size());
		ServletOutputStream out = response.getOutputStream();
		ba.writeTo(out);
		out.flush();
	}


前台获取:
function getPDF()
{
	document.location.href="servlet/GetPDF";
}


问题是这样操作的话,pdf文件直接在浏览器上显示了,那如何直接提示用户下载到本地那?
   
最后更新时间:2006-12-26
在  response.setContentType("application/pdf");  后加上

        response.setHeader("Content-Disposition", "attachment;filename=\"" + exportFileName + "\"");
        response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
        response.setHeader("Pragma", "public");
        response.setDateHeader("Expires", (System.currentTimeMillis() + 1000));


关键是

response.setHeader("Content-Disposition", "attachment;filename=\"" + exportFileName + "\"");
这行

告诉浏览器 这是一个 附件
   
0 请登录后投票
最后更新时间:2006-12-26
多谢大哥。我试试先
   
0 请登录后投票
论坛首页 Java版 Struts

跳转论坛:
JavaEye推荐