繁体   English   中英

使用Struts在JSP中从BLOB MySQL显示文档文件

[英]Show doc file from BLOB MySQL in JSP using Struts

我需要从MySQL DB检索一个.doc文件,该文件以BLOB数据类型存储。 这是我的动作文件代码

List<CandyDetails> det = new ArrayList<CandyDetails>();
CandyDetails details = new CandyDetails();

ResultSet rs3 = st.executeQuery("SELECT * FROM seek_resume WHERE seek_code = '"+seekCode+"'");
   while(rs3.next()){
      details.setResume(rs3.getBytes(2));
}

request.setAttribute("candyDet", det);
return mapping.findForward("success");

这是CandyDetails.java文件

private byte[] resume;
//getter/setter methods

这是我的JSP页面代码

<logic:iterate name="candyDet" id="in">
     ${in.resume}
</logic:iterate>

我在jsp页面上得到的输出有些乱码

[B@3efc0688 

每次刷新时,B @之后的数字似乎都在变化。

我正在使用Struts 1.3。

将其放在Action类中

String qry="SELECT * FROM seek_resume WHERE seek_code = '"+seekCode+"'"";
Statement st = con.createStatement(qry);                
ResultSet rs = st.executeQuery();
if(rs.next()) //show one document
{
    byte[] bytearray = new byte[1048576];
    int size=0;
    InputStream is = rs.getBinaryStream(2);
   // String contentType=rs.getString("content_type");
    String contentType = "application/msword"; //doc
    String contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; //docx                     
    response.reset();
    response.setContentType(contentType);
    while((size=is.read(bytearray))!= -1 )
    {
        response.getOutputStream().write(bytearray,0,size);
    }
}

//return null;

---------- jsp --------

<a href="showDoc.do?seekCode=${seekCode}" target="_blank"> View</a>

//根据需要放置链接。

通过将代码传递给操作类来调用操作类,这将依次为您提供文档作为响应。

要么

您可以使用Apache POI将文档显示为内联内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM