【发布时间】:2012-02-27 16:19:37
【问题描述】:
我正在尝试将文件从文件系统流式传输到浏览器,但无法使其正常工作。我有一个 render=false 的 xpage,在 afterRenderResponse 上我有以下代码:
XspHttpServletResponse response = (XspHttpServletResponse) getFacesContext().getExternalContext().getResponse();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=demofile.exe");
File file = new File("path to file");
FileInputStream fileIn = new FileInputStream(file);
ServletOutputStream out = response.getOutputStream();
etc. .....
现在,当我尝试打开 xpage 时,我在控制台上收到如下错误消息:
java.lang.IllegalStateException: Can't get an OutputStream while a Writer is already in use
at com.ibm.xsp.webapp.XspHttpServletResponse.getOutputStream(XspHttpServletResponse.java:548)
“response.getOutputStream()”方法会引发此类错误,因此我无法使输出流正常工作。有没有人有这方面的经验?我只是尝试实现下载服务,以便将文件从服务器文件系统流式传输回浏览器。
【问题讨论】:
-
您能否发布您的 xagent 的完整源代码。提前致谢!
标签: xpages