如何从xPages流文件?

Dav*_*rko 4 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. .....
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试打开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)
Run Code Online (Sandbox Code Playgroud)

方法'response.getOutputStream()'引发了这样的错误,所以我不能让输出流工作.有没有人有这方面的经验?我只是尝试实现下载服务,以便将文件从服务器文件系统流回浏览器.

Nav*_*een 6

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

有关更多帮助,请参阅以下链接:

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

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