posts - 6, comments - 8, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          從數據庫中讀出圖片并顯示的示例代碼

          ?

          ??1<?!--?--?--?--servlet--?--?--?--?-->
          ??2package?Photo;
          ??3import?javax.servlet.*;
          ??4import?javax.servlet.http.*;
          ??5import?java.io.*;
          ??6import?java.util.*;
          ??7import?java.lang.*;
          ??8import?java.sql.*;?
          ??9/**
          ?10*?<p>Title:?</p>
          ?11*?<p>Description:?</p>
          ?12*?<p>Copyright:?Copyright?(c)?2002</p>
          ?13*?<p>Company:?</p>
          ?14*?@author?unascribed
          ?15*?@version?1.0
          ?16*/

          ?17
          ?18public?class?ShowImage?extends?HttpServlet?{
          ?19private?static?final?String?CONTENT_TYPE?=?"image/*";
          ?20/**
          ?21*?定義數據庫連接字符串,jdbc.odbc橋
          ?22*/

          ?23private?String?driver_class?=?"oracle.jdbc.driver.OracleDriver";
          ?24private?String?connect_string?=
          ?25"jdbc:oracle:thin:xxw/xxw@192.168.1.50:1521:ORCL";
          ?26Connection?conn?=?null;
          ?27ResultSet?rs?=?null;
          ?28Statement?stmt?=?null;
          ?29/********************************************
          ?30*?定義應用變量
          ?31******************************************/

          ?32private?String?SQLString?=?"";?//定義查詢語句\\r
          ?33public?String?M_EorrMenage?=?"";?//定義錯誤信息變量
          ?34private?InputStream?in?=?null;?//定義輸入流\\r
          ?35private?int?len?=?10?*?1024?*?1024;?//定義字符數組長度
          ?36
          ?37//Initialize?global?variables
          ?38public?void?init()?throws?ServletException?{
          ?39/**
          ?40*?連接數據庫\\r
          ?41*/

          ?42try?{
          ?43Class.forName(driver_class);
          ?44}
          ?catch?(java.lang.ClassNotFoundException?e)?{
          ?45//異常
          ?46System.err.println("databean():"?+?e.getMessage());
          ?47}

          ?48}

          ?49//Process?the?HTTP?Get?request
          ?50public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
          ?51throws?ServletException,?IOException?{
          ?52response.setContentType(CONTENT_TYPE);
          ?53PrintWriter?out?=?response.getWriter();
          ?54//在數據庫中的照片的ID
          ?55int?PHOTOID?=?0;
          ?56/*********************************************
          ?57*?接受上文傳遞的圖片ID號
          ?58*?上文傳輸文件名稱為photoid
          ?59*********************************************/

          ?60try?{
          ?61
          ?62PHOTOID?=?Integer.parseInt(request.getParameter("photoid"));
          ?63SQLString?=?"select?*?from?xxw_photo?where?p_id="?+?PHOTOID;
          ?64
          ?65}
          ?catch?(Exception?e)?{
          ?66e.printStackTrace();
          ?67response.setContentType("text/html;?charset=gb2312");
          ?68M_EorrMenage?=?"請輸入圖片ID號";
          ?69M_EorrMenage?=
          ?70new?String(M_EorrMenage.getBytes("ISO8859_1"),?"GBK");
          ?71out.println("<%@?page?contentType=\'text/html;?charset=gb2312\'?%>");
          ?72out.println("<html>");
          ?73out.println("<head><title>id</title></head>");
          ?74out.println("<body>");
          ?75out.println("<p>"?+?M_EorrMenage?+?"</p>");
          ?76out.println("</body></html>");
          ?77
          ?78}

          ?79/*****************************************************
          ?80*?執行查詢語句\\r
          ?81*****************************************************/

          ?82try?{
          ?83conn?=?DriverManager.getConnection(connect_string);
          ?84stmt?=?conn.createStatement();
          ?85rs?=?stmt.executeQuery(SQLString);
          ?86}
          ?//try
          ?87catch?(SQLException?ex)?{
          ?88System.err.println("aq.executeUpdate:"?+?ex.getMessage());
          ?89M_EorrMenage?=?"對不起,數據庫無法完成此操作!";
          ?90M_EorrMenage?=
          ?91new?String(M_EorrMenage.getBytes("ISO8859_1"),?"GBK");
          ?92response.setContentType("text/html;?charset=gb2312");
          ?93out.println("<html>");
          ?94out.println("<head><title>no_database</title></head>");
          ?95out.println("<body>");
          ?96out.println("<p>"?+?M_EorrMenage?+?"</p>");
          ?97out.println("</body></html>");
          ?98
          ?99}

          100/*********************************************
          101*?將圖片流讀入字符數組中,并顯示到客戶端
          102********************************************/

          103try?{
          104if?(rs.next())?{
          105in?=?rs.getBinaryStream("photo");
          106response.reset();?//返回在流中被標記過的位置
          107response.setContentType("image/jpg");?//或gif等
          108//?int?len=in.available();//得到文件大小
          109OutputStream?toClient?=?response.getOutputStream();
          110byte[]?P_Buf?=?new?byte[len];
          111int?i;
          112while?((i?=?in.read(P_Buf))?!=?-1)?{
          113toClient.write(P_Buf,?0,?i);
          114}

          115in.close();
          116toClient.flush();?//強制清出緩沖區\\r
          117toClient.close();
          118}
          ?else?{
          119M_EorrMenage?=?"無此圖片!";
          120M_EorrMenage?=
          121new?String(M_EorrMenage.getBytes("ISO8859_1"),?"GBK");
          122response.setContentType("text/html;?charset=gb2312");
          123out.println("<html>");
          124out.println(
          125"<head><title>this?photo?isn\'t?have</title></head>");
          126out.println("<body>");
          127out.println("<p>"?+?M_EorrMenage?+?"</p>");
          128out.println("</body></html>");
          129}

          130rs.close();
          131}
          ?catch?(Exception?e)?{
          132e.printStackTrace();
          133M_EorrMenage?=?"無法讀取圖片!";
          134M_EorrMenage?=
          135new?String(M_EorrMenage.getBytes("ISO8859_1"),?"GBK");
          136response.setContentType("text/html;?charset=gb2312");
          137out.println("<%@?page?contentType=\'text/html;?charset=gb2312\'?%>");
          138out.println("<html>");
          139out.println("<head><title>no?photo</title></head>");
          140out.println("<body>");
          141out.println("<p>"?+?M_EorrMenage?+?"</p>");
          142out.println("</body></html>");
          143}

          144}

          145
          146//Clean?up?resources
          147public?void?destroy()?{
          148try?{
          149conn.close();
          150}
          ?catch?(SQLException?e)?{
          151System.err.println("aq.executeUpdate:"?+?e.getMessage());
          152M_EorrMenage?=?"對不起,數據庫無法完成此操作!";
          153}

          154}

          155}

          156
          157

          ?

          ?1<!---------------------------顯示---------------------------------------------->
          ?2<html>
          ?3<head>
          ?4<title>Untitled?Document</title>
          ?5</head>
          ?6<body?bgcolor="#FFFFFF"?text="#000000">
          ?7<table>
          ?8<%
          ?9int?i=1;
          10while(i<3){
          11%>
          12<tr>?
          13<td?colspan="3">?<img?border="1"?src="http://192.168.1.50:8100/ShowImage?photoid=<;%=i%>"></td>
          14</tr>
          15<%
          16i++;
          17}

          18%>
          19</table>
          20</body>
          21</html>
          22


          注:此程序對于從數據庫讀取圖片后寫入文件請參考代碼者留意
          來自:http://18839.com/Edu/A11/11007/5/2005120579783.html


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 姜堰市| 博乐市| 林口县| 满城县| 阳山县| 永和县| 留坝县| 吴旗县| 苍梧县| 昌乐县| 门源| 梅州市| 平顺县| 云和县| 枝江市| 宜都市| 安乡县| 宣汉县| 扶风县| 德令哈市| 定结县| 阿巴嘎旗| 普陀区| 通辽市| 昌平区| 黄浦区| 康乐县| 门头沟区| 特克斯县| 湟源县| 建宁县| 张家口市| 鄯善县| 屏山县| 泗水县| 罗甸县| 灌云县| 汶川县| 景洪市| 宝鸡市| 修文县|