如何从xPages流文件?

时间:2012-02-27 16:19:38

标签: xpages

我正在尝试将文件从文件系统流式传输到浏览器,但无法使其正常工作。我有一个带有rendering = 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()'引发了这样的错误,所以我不能让输出流工作。有没有人有这方面的经验?我只是尝试实现下载服务,以便将文件从服务器文件系统流回浏览器。

1 个答案:

答案 0 :(得分:6)

您可以在beforeRenderResponse中调用facesContext.getOutputStream(),而不是在afterRenderResponse中调用。

请参阅以下链接以获取更多帮助:

http://www.wissel.net/blog/d6plinks/SHWL-8BYMW8

http://www.wissel.net/blog/d6plinks/shwl-7mgfbn