帮忙看一下从oracle中显示图片的程序(分已经破产了..)
方舟 2003-10-16 04:10:02 已成功录入图片,存放字段为file (long raw)
<%@ page language="java" import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page contentType="text/html;charset=gb2312"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@popotang:1521:oradb";
String image_id = (String) request.getParameter("ID");
Connection con=DriverManager.getConnection(url,"system","zjt7890");
PreparedStatement sql=con.prepareStatement("select * from linkway.uploadfile WHERE id =1 " );
ResultSet rs = sql.executeQuery();
rs.next();
//输入img字段内容到in
InputStream in = rs.getBinaryStream("file");
//以下可是任何处理,比如向页面输出:
response.reset();
//此处的image/jpeg似乎与显示的图片格式无关
//因为我显示jsp和gif都没有错误
response.setContentType("image/gif");
byte[] b = new byte[1024];
int len;
while((len=in.read(b)) >0)
response.getOutputStream().write(b,0,len);
in.close();
rs.close();
%>
执行错误是
====================================================================
exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:628)
org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:192)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:165)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:158)
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:243)
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:160)
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:120)
org.apache.jsp.ShowImg_jsp._jspService(ShowImg_jsp.java:81)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
不懂啊,