2015-05-30 31 views
2

我很抱歉我的英语。我用翻译器。有一个Java代码。从现场Posgresql BYTEA二进制数据,并将其存储在一个文件数据库中读取:如何在xpages中将引用传递给Java中的文件

<code> 
    public static void saveToFile() throws IOException { 
    try { 
    Connection conn = JdbcUtil.getConnection(FacesContext.getCurrentInstance(), "derby1"); 
      ResultSet rs = conn.createStatement().executeQuery(
          "SELECT files FROM test_goverment where who='d'"); 
      byte[] imgBytes = null; 
      if (rs != null) { 
       while (rs.next()) { 
        imgBytes = rs.getBytes(1); 
       } 
       FileOutputStream os = new FileOutputStream("c:\\samoutput.txt"); 
       os.write(imgBytes); 
       os.flush(); 
       os.close(); 
      } 
      rs.close(); 
      conn.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     enter code here} 
    } 
</code> 

如何传输的文件下载到用户的XPages。下载后删除它。

回答

1

您只是想将查询结果传输到浏览器客户端进行下载并且不想保存它。

public static void downloadFile() throws IOException { 
    try { 
     FacesContext facesContext = FacesContext.getCurrentInstance(); 
     Connection conn = JdbcUtil.getConnection(facesContext, "derby1"); 
     ResultSet rs = conn.createStatement().executeQuery(
          "SELECT files FROM test_goverment where who='d'"); 
     byte[] imgBytes = null; 
     if (rs != null) { 
      while (rs.next()) { 
       imgBytes = rs.getBytes(1); 
      } 
      ExternalContext extCon = facesContext.getExternalContext(); 
      XspHttpServletResponse response = (XspHttpServletResponse)extCon.getResponse(); 
      response.reset(); 
      response.setContentType("text/plain"); 
      response.setHeader("Content-disposition", "attachment; filename=output.txt"); 
      response.setHeader("Cache-Control", "no-cache"); 
      OutputStream os = response.getOutputStream(); 
      os.write(imgBytes); 
      os.flush(); 
      facesContext.responseComplete(); 
      rs.close();    
     } 
     conn.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

您还可以:

而是首先将查询结果保存到文件并传输下载后
可以内容直接到XPage中的响应这样的看看这个XSnippet。它向您展示了如何呈现文件以供下载,以防您想要/必须保留文件而不仅仅是流。

+0

非常感谢。有用.... – JohnLemon

相关问题