法拉利458什么时候停产:从数据库中读出图片并显示的示例代码

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 04:42:26





CODE:

< !-- -- -- -- -- -- -- -- -- -- -- -- -- --servlet-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -->
package Photo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.sql.*;

/**

Title: 


Description: 


Copyright: Copyright (c) 2002


Company: 


* @author unascribed
* @version 1.0
*/

public class ShowImage extends HttpServlet {
    private static final String CONTENT_TYPE = "image/*";
    /**
    * 定义数据库连接字符串,jdbc.odbc桥
    */
    private String driver_class = "oracle.jdbc.driver.OracleDriver";
    private String connect_string =
        "jdbc:oracle:thin:xxw/xxw@192.168.1.50:1521:ORCL";
    Connection conn = null;
    ResultSet rs = null;
    Statement stmt = null;
    /********************************************
    * 定义应用变量
    ******************************************/
    private String SQLString = ""; //定义查询语句
    public String M_EorrMenage = ""; //定义错误信息变量
    private InputStream in = null; //定义输入流
    private int len = 10 * 1024 * 1024; //定义字符数组长度

    //Initialize global variables
    public void init() throws ServletException {
        /**
        * 连接数据库
        */
        try {
            Class.forName(driver_class);
        } catch (java.lang.ClassNotFoundException e) {
            //异常
            System.err.println("databean():" + e.getMessage());
        }
    }
    //Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        //在数据库中的照片的ID
        int PHOTOID = 0;
        /*********************************************
        * 接受上文传递的图片ID号
        * 上文传输文件名称为photoid
        *********************************************/
        try {

            PHOTOID = Integer.parseInt(request.getParameter("photoid"));
            SQLString = "select * from xxw_photo where p_id=" + PHOTOID;

        } catch (Exception e) {
            e.printStackTrace();
            response.setContentType("text/html; charset=gb2312");
            M_EorrMenage = "请输入图片ID号";
            M_EorrMenage =
                new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
            out.println("<%@ page contentType=‘text/html; charset=gb2312‘ %>");
            out.println("");
            out.println("id");
            out.println("");
            out.println("

" + M_EorrMenage + "

");
            out.println("");

        }
        /*****************************************************
        * 执行查询语句
        *****************************************************/
        try {
            conn = DriverManager.getConnection(connect_string);
            stmt = conn.createStatement();
            rs = stmt.executeQuery(SQLString);
        } //try
        catch (SQLException ex) {
            System.err.println("aq.executeUpdate:" + ex.getMessage());
            M_EorrMenage = "对不起,数据库无法完成此操作!";
            M_EorrMenage =
                new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
            response.setContentType("text/html; charset=gb2312");
            out.println("");
            out.println("no_database");
            out.println("");
            out.println("

" + M_EorrMenage + "

");
            out.println("");

        }
        /*********************************************
        * 将图片流读入字符数组中,并显示到客户端
        ********************************************/
        try {
            if (rs.next()) {
                in = rs.getBinaryStream("photo");
                response.reset(); //返回在流中被标记过的位置
                response.setContentType("image/jpg"); //或gif等
                // int len=in.available();//得到文件大小
                OutputStream toClient = response.getOutputStream();
                byte[] P_Buf = new byte[len];
                int i;
                while ((i = in.read(P_Buf)) != -1) {
                    toClient.write(P_Buf, 0, i);
                }
                in.close();
                toClient.flush(); //强制清出缓冲区
                toClient.close();
            } else {
                M_EorrMenage = "无此图片!";
                M_EorrMenage =
                    new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
                response.setContentType("text/html; charset=gb2312");
                out.println("");
                out.println(
                    "this photo isn‘t have");
                out.println("");
                out.println("

" + M_EorrMenage + "

");
                out.println("");
            }
            rs.close();
        } catch (Exception e) {
            e.printStackTrace();
            M_EorrMenage = "无法读取图片!";
            M_EorrMenage =
                new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
            response.setContentType("text/html; charset=gb2312");
            out.println("<%@ page contentType=‘text/html; charset=gb2312‘ %>");
            out.println("");
            out.println("no photo");
            out.println("");
            out.println("

" + M_EorrMenage + "

");
            out.println("");
        }
    }

    //Clean up resources
    public void destroy() {
        try {
            conn.close();
        } catch (SQLException e) {
            System.err.println("aq.executeUpdate:" + e.getMessage());
            M_EorrMenage = "对不起,数据库无法完成此操作!";
        }
    }
}






Untitled Document



<%
int i=1;
while(i<3){
%>
 
 ">

<%
i++;
}
%>




注:此程序对于从数据库读取图片后写入文件请参考代码者留意 整理发布:独孤求胜 umbrella

文章回复:

Re:从数据库中读出图片并显示的示例代码
作者:Cable Fan  发表于:2005-10-11 20:33  通过Email跟作者联系
谢谢作者,作者只是想讲解一个技术,并不是论方法好坏.

Re:从数据库中读出图片并显示的示例代码
作者:青菜虫  发表于:2005-05-24 08:40  通过Email跟作者联系
我想如果是存入地址的话,是不是不是在本地上传的图片会访问不到啊。还有,我怎么没有看明白怎么样从网页中显示出来的啊。

Re:从数据库中读出图片并显示的示例代码
作者:tony  发表于:2005-02-16 16:00  通过Email跟作者联系
我和Demon 有同样的疑问----为什么把图片直接放到数据库中?为什么不存入地址,然后从数据库读出图片地址就好啊!


Re:从数据库中读出图片并显示的示例代码
作者:David  发表于:2004-12-16 19:59  通过Email跟作者联系
发自内说一句 THANK YOU VERY MUCH!!
感谢您的帮助!!

Re:从数据库中读出图片并显示的示例代码
作者:Demon  发表于:2004-08-14 16:14  通过Email跟作者联系
为什么把图片直接放到数据库中?为什么不存入地址,然后从数据库读出图片地址就好啊!






CODE:

< !-- -- -- -- -- -- -- -- -- -- -- -- -- --servlet-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -->
package Photo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.sql.*;

/**

Title: 


Description: 


Copyright: Copyright (c) 2002


Company: 


* @author unascribed
* @version 1.0
*/

public class ShowImage extends HttpServlet {
    private static final String CONTENT_TYPE = "image/*";
    /**
    * 定义数据库连接字符串,jdbc.odbc桥
    */
    private String driver_class = "oracle.jdbc.driver.OracleDriver";
    private String connect_string =
        "jdbc:oracle:thin:xxw/xxw@192.168.1.50:1521:ORCL";
    Connection conn = null;
    ResultSet rs = null;
    Statement stmt = null;
    /********************************************
    * 定义应用变量
    ******************************************/
    private String SQLString = ""; //定义查询语句
    public String M_EorrMenage = ""; //定义错误信息变量
    private InputStream in = null; //定义输入流
    private int len = 10 * 1024 * 1024; //定义字符数组长度

    //Initialize global variables
    public void init() throws ServletException {
        /**
        * 连接数据库
        */
        try {
            Class.forName(driver_class);
        } catch (java.lang.ClassNotFoundException e) {
            //异常
            System.err.println("databean():" + e.getMessage());
        }
    }
    //Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        //在数据库中的照片的ID
        int PHOTOID = 0;
        /*********************************************
        * 接受上文传递的图片ID号
        * 上文传输文件名称为photoid
        *********************************************/
        try {

            PHOTOID = Integer.parseInt(request.getParameter("photoid"));
            SQLString = "select * from xxw_photo where p_id=" + PHOTOID;

        } catch (Exception e) {
            e.printStackTrace();
            response.setContentType("text/html; charset=gb2312");
            M_EorrMenage = "请输入图片ID号";
            M_EorrMenage =
                new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
            out.println("<%@ page contentType=‘text/html; charset=gb2312‘ %>");
            out.println("");
            out.println("");
            out.println("");
            out.println("

" + M_EorrMenage + "

");
            out.println("");

        }
        /*****************************************************
        * 执行查询语句
        *****************************************************/
        try {
            conn = DriverManager.getConnection(connect_string);
            stmt = conn.createStatement();
            rs = stmt.executeQuery(SQLString);
        } //try
        catch (SQLException ex) {
            System.err.println("aq.executeUpdate:" + ex.getMessage());
            M_EorrMenage = "对不起,数据库无法完成此操作!";
            M_EorrMenage =
                new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
            response.setContentType("text/html; charset=gb2312");
            out.println("");
            out.println("");
            out.println("");
            out.println("

" + M_EorrMenage + "

");
            out.println("");

        }
        /*********************************************
        * 将图片流读入字符数组中,并显示到客户端
        ********************************************/
        try {
            if (rs.next()) {
                in = rs.getBinaryStream("photo");
                response.reset(); //返回在流中被标记过的位置
                response.setContentType("image/jpg"); //或gif等
                // int len=in.available();//得到文件大小
                OutputStream toClient = response.getOutputStream();
                byte[] P_Buf = new byte[len];
                int i;
                while ((i = in.read(P_Buf)) != -1) {
                    toClient.write(P_Buf, 0, i);
                }
                in.close();
                toClient.flush(); //强制清出缓冲区
                toClient.close();
            } else {
                M_EorrMenage = "无此图片!";
                M_EorrMenage =
                    new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
                response.setContentType("text/html; charset=gb2312");
                out.println("");
                out.println(
                    "");
                out.println("");
                out.println("

" + M_EorrMenage + "

");
                out.println("");
            }
            rs.close();
        } catch (Exception e) {
            e.printStackTrace();
            M_EorrMenage = "无法读取图片!";
            M_EorrMenage =
                new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
            response.setContentType("text/html; charset=gb2312");
            out.println("<%@ page contentType=‘text/html; charset=gb2312‘ %>");
            out.println("");
            out.println("");
            out.println("");
            out.println("

" + M_EorrMenage + "

");
            out.println("");
        }
    }

    //Clean up resources
    public void destroy() {
        try {
            conn.close();
        } catch (SQLException e) {
            System.err.println("aq.executeUpdate:" + e.getMessage());
            M_EorrMenage = "对不起,数据库无法完成此操作!";
        }
    }
}










<%
int i=1;
while(i<3){
%>
 
 

<%
i++;
}
%>




注:此程序对于从数据库读取图片后写入文件请参考代码者留意
 

showimage?photoid="">

<%
i++;
}
%>




注:此程序对于从数据库读取图片后写入文件请参考代码者留意
 

>
如何显示数据库中一定数量的图片?有代码...帮偶改下... 请问如何做一个上传图片的ASP发布页面,包括上传,写入数据库,以及从数据库中读出发表? jsp 如何从数据库中读取二进制文件(图片)并显示 在ASP代码中,如何把数据库的记录Id写到链接路径上,示例: 在ASP中要让从数据库中读出的产品名行向一个显示怎么控制版面? 怎样将图片存储路径的形式存入Access数据库,并显示在ASP网页中。 ASP中滚动图片(从数据库提取)代码~~~~~~~ 在用VB 编程时,用ADO和一个下拉列表框,用什么代码可以实现从数据库中读取数据并在文本框中显示出来? winform 中,怎样从数据库里读出数据,并且在IE中显示?(vb.net)请各位高手帮忙!!! (网页)图片的路径c:/images/123.jpg 保存在数据库中,如何读出? 如何在首页中以从右下左方式显示数据库里的图片 如何将WORD文档(文档中有文字、表格、图片)保存在ACCESS数据库中以及从数据库中读出来 在PHP编程中从数据库里读出的一个字段怎样分页 显示数据库中所有表名的代码(asp) dreamweaver中怎样让窗口的标题与从数据库中读出来的文章标题一致 从数据库读出来的文章怎么不分段? ASP从数据库里读出来的都是????,乱码 有一个图片保存在"c:/123/123.jpg",如何把它的路径保存到数据库?并读出来? ASP从数据库中提取图片的方法 treeview要连接access数据库,然后在从数据库中选出9张图片的地址,显示在窗体中的picturebox中,该如何操作 如何把图片弄成能在vcd机上读出来并显示在电视上? 用asp显示数据库中图片 dreamwave怎么从数据库中调用图片? 分析一段代码asp中图片上传到数据库中?