使用JSF,不能直接往 response 写文件内容,尝试了很久,使用 iframe 进行下载。凡是需要用到下载的地方,
只要在 session 设置文件名,就能下载。
1) 生成要下载的临时文件,文件绝对路径名保存在 session.
2) 页面增加 iframe:
- <iframe name="download_frame" id="download_frame" style="display:none" src="download.jsp">
- </iframe>
3) download.jsp 检查 session,如果 session 有下载的文件名,读文件写到 response,
删除 session 中的文件名,删除临时文件。
测试结果:IE 会发出警告,Firefox 中没问题。
还搞了个弹出窗口下载的方法,用 Firefox 没问题,IE有些版本可以,有些不行,但如果安装了 flashget, 迅雷之类的下载软件,监视浏览器,都可以正常下载。
还是用回第一种好了...
xml 代码