先取到硬盘上,然后再显示图片

解决方案 »

  1.   

    直接从数据里面读取后缓存再写到浏览器就行了!
      

  2.   

    具体怎么做?
    我要显示到表格单元格中呀?
      

  3.   

    1、建立如下一个servletpackage com.mrx.travel;import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import com.mrx.database.JDBCHelper;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.sql.Connection;
    /**
     * <p>Copyright: Copyright (c) 2003</p>
     * @author 没人性 [[email protected]]
     * @version 1.0
     */public class ShowImage extends HttpServlet {
      static final private String CONTENT_TYPE = "text/html; charset=GBK";
      //Initialize global variables
      public void init() throws ServletException {
      }
      //Process the HTTP Get request
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String id = request.getParameter("ID");
        if (id == null) {
          id = "";
        }
        //----------------------------------------------------------
        InputStream in;
        ServletOutputStream sout=response.getOutputStream();
        //----------------------------------------------------------
        JDBCHelper helper = new JDBCHelper();
        //这是我的jdbc帮助类,也就是提供数据库访问的类。你可以用你自己的方式。
        Connection cnn;
        PreparedStatement pstmt;
        ResultSet rs;
        try{
          cnn=helper.openConnection();
          pstmt = cnn.prepareStatement("select imagedata from tbl_images where id=?");
          //上面的sql根据你自己的改
          pstmt.setString(1,id);
          rs = pstmt.executeQuery();      boolean lookingForLineFeed=false;
          int lines=0;      if (rs.next()) {
            in=rs.getBinaryStream(1);
            int c;
            while ((c=in.read())!=-1) {
              if (c=='\n') {
                if (lookingForLineFeed) {
                  lookingForLineFeed=false;
                  lines++;
                  continue;
                }
              }
              else if(c=='\r') {
                lookingForLineFeed=true;
              }
              else{
                lookingForLineFeed=false;
              }
              if (lines>=4) {
                sout.write(c);          }
            }
            in.close();
            sout.close();
          }
          rs.close();
          pstmt.close();
          helper.closeConnection();    }
        catch(SQLException sqle){
          sqle.printStackTrace();
        }
      }
      //Clean up resources
      public void destroy() {
      }
    }2、在web.xml里实施
      <servlet>
        <servlet-name>ShowImage</servlet-name>
        <servlet-class>com.mrx.travel.ShowImage</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ShowImage</servlet-name>
        <url-pattern>/management/ShowImage</url-pattern>
      </servlet-mapping>3、web里引用
    <img src="/management/ShowImage?ID=xxx">//为图片的ID