是在ACCESS中用OLE字段类型存储的

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=gb2312"%>
    <%@ include file="/DataIni/DataOpen.jsp"%>
    <%@ include file="/ScriptLib/Init.jsp"%>
    <%
    String Id;
    Id=request.getParameter("Id");
    odbcQuery="select * from Dot where ID="+Id;
    odbcRs=odbcStmt.executeQuery(odbcQuery); byte[] Buffer=new byte[1024*10];
    InputStream InData=null;
    OutputStream outData=null;
    int iSize;
    if(odbcRs.next())
    {
    outData=response.getOutputStream();
    InData=odbcRs.getBinaryStream("OLEFile");
    response.setContentType("image/*");
    while(true)
    {
    iSize=InData.read(Buffer);
    if(iSize==-1)
    {
    break;
    }
    outData.write(Buffer,0,iSize);
    }
    outData.flush();
    response.flushBuffer();
    }
    odbcRs.close();
    %>
    <%@ include file="/DataIni/DataClose.jsp"%>
      

  2.   

    数据库中有图片吗?
    <%@ page import="java.sql.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="java.io.*"%>
    <%@ page import="java.text.*"%>
    <%@ page import="SessionCount.SessionCounter"%>
    <%
    String odbcQuery;
    Connection odbcConn;
    Statement odbcStmt;
    Statement odbcStmtExtend;
    Statement odbcStmtPage;
    Statement odbcStmtUpdate;
    ResultSet odbcRs;
    ResultSet odbcRsExtend;
    ResultSet odbcRsPage;

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    odbcConn=DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=F:\\Db_ColligateStatistic\\ColligateStatistic.mdb;","admin","");
    odbcStmt=odbcConn.createStatement();
    odbcStmtExtend=odbcConn.createStatement();
    odbcStmtPage=odbcConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    odbcStmtUpdate=odbcConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    request.setCharacterEncoding("gb2312");
    %>
      

  3.   

    如果是在本机运行,可能需要把url中的机器名改为ip地址
      

  4.   

    数据库中有图片。url中的机器名也改为ip地址了,还是不行啊
      

  5.   

    直接在浏览器运行showpic.jsp文件,如果不报错的话,会有提示保存,打开的对话框,点保存将文件保存为jpg格式的文件,然后看保存的文件是否跟图片一样大,是否能在ie中打开
      

  6.   

    将showpic.jsp文件中的
    <%@ page contentType="text/html; charset=gb2312"%>
    改成:
    <%@ page contentType="image/jpeg; charset=gb2312"%>
      

  7.   

    放置一个image,把scr设为showpic.jsp吧
      

  8.   

    是不是把整个BUFFER都作为图片数据读出来了?
      

  9.   

    把while(true)去掉可以取出来实际的文件,但是文件大小好象少了点,为什么啊
      

  10.   

    不对吧,应该是<%@include file="showpic.jsp"%>
    这样肯定有图片
      

  11.   

    TO:wucrcsdn(阿荣) 
    还是不行啊
      

  12.   

    用文件大小代替10k缓存区看看
    resultset = stmt.executeQuery(s); 
    InputStream InData=null;
    OutputStream outData=null;
    int iSize;
    if(resultset.next())
    {
    outData=response.getOutputStream();
    InData=resultset.getBinaryStream("pic");
    int len=InData.available();
    byte[] Buffer=new byte[len];
    response.setContentType("image/*");
    while(true)
    {
    iSize=InData.read(Buffer);
    if(iSize==-1)
    {
    break;
    }
    outData.write(Buffer,0,iSize);
    }
    outData.flush();
    response.flushBuffer();
    }
    resultset.close();
      

  13.   

    参考http://www.java-cn.com/technology/technology_detail.jsp?id=2844
      

  14.   

    to: shijainbo
    还是不行,我也怀疑不是代码的问题
    现在主要问题是每次取出的数据大小都是一样的,不管数据库中的图片有多大
      

  15.   

    发现一个问题,我的显示提示下载图片,然后我先保存成*.jsp的文件,再改后缀成.jpg时候,能显示图片,但是保存时直接改后缀的时候又没有图片啦!
      

  16.   

    各位大哥大姐!
    谁能给我们这些大菜鸟讲讲怎样把图片存入到Access里面去啊,
    我搞了好久都不行啊。救命啊!
      

  17.   

    TO:xiongzai(熊仔)
    还有同病相怜的啊
    有空一块讨论吧,我的QQ:86825951