魔獸傳奇

          java程序愛好者
          posts - 28, comments - 16, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            最近使用jsp連接數(shù)據(jù)庫,插入圖片,遇到了點(diǎn)難題,希望高手能幫我解決!
             問題1:我想控制輸入圖片的類型,如只允許插入.bmp , .jpeg 或者 .gif類型的圖片(在程序中判斷,如果是這三種類型中的某一種,則可插入數(shù)據(jù)庫)。
             問題2:我的圖片名稱是中文的,我要通過什么方法才能將其轉(zhuǎn)換成二進(jìn)制插入數(shù)據(jù)庫(如果是英文名稱或其他非中文可插入數(shù)據(jù)庫(已測(cè)試),而是中文的圖片名稱則拋出異常)

          1.數(shù)據(jù)庫:denglu   ,用戶名: sa  密碼: sa
               表sql: CREATE TABLE [dbo].[picturenews] (
          [id] [int] IDENTITY (1, 1) NOT NULL ,
          [image] [image] NULL ,
          [content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,
          [detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL
          ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
           2.test.jsp頁面,前臺(tái)圖片的輸入
          <HTML>
          <HEAD>
          <TITLE>存儲(chǔ)圖片</TITLE>
          </HEAD>
          <body>
          <!-- 下面的窗體將以Post方法,將數(shù)據(jù)傳遞給testimage.jsp文件 -->
          <FORM METHOD=POST ACTION="testimage.jsp">
          新 聞 標(biāo) 題:<INPUT TYPE="text" NAME="content"><BR>
          新 聞 圖 片:<INPUT TYPE="file" NAME="image"><BR>
          新聞內(nèi)容:
          <TEXTAREA name="txtmail" rows="15" cols="90"
          style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid;
          BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt;
          HEIGHT: 200px; WIDTH: 100%" wrap="physical" ></TEXTAREA><br>
          <INPUT TYPE="submit"></form>
          </body>
          </HTML>
          3.testimage.jsp文件是用來將圖片數(shù)據(jù)存入數(shù)據(jù)庫中。
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*" %>
          <%@ page import="java.util.*"%>
          <%@ page import="java.text.*"%>
          <%@ page import="java.io.*"%>
          <html>
          <body>
          <%
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          //加載驅(qū)動(dòng)程序類
          Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
          //建立數(shù)據(jù)庫聯(lián)機(jī),其中denglu為數(shù)據(jù)庫名,sa為連接數(shù)據(jù)庫的帳號(hào)及密碼。
          Statement stmt=con.createStatement();
          //建立Statement對(duì)象
          String content=request.getParameter("content");
          content=new String(content.getBytes("8859_1"),"gb2312");
          String filename=request.getParameter("image");
          filename=new String(filename.getBytes("8859_1"),"gb2312");
          String detail=request.getParameter("txtmail");
          detail=new String(detail.getBytes("8859_1"),"gb2312");
          //獲得所要顯示圖片的標(biāo)題、存儲(chǔ)路徑、內(nèi)容,并進(jìn)行中文編碼
          FileInputStream str=new FileInputStream(filename);
          String sql="insert into picturenews(content,image,detail) values(?,?,?)";
          PreparedStatement pstmt=con.prepareStatement(sql);
          pstmt.setString(1,content);
          pstmt.setBinaryStream(2,str,str.available());
          pstmt.setString(3,detail);
          pstmt.execute();
          //將數(shù)據(jù)存入數(shù)據(jù)庫
          out.println("Success,You Have Insert an Image Successfully");
          %>


          評(píng)論

          # re: jsp保存圖片到數(shù)據(jù)庫與顯示問題!求助!  回復(fù)  更多評(píng)論   

          2008-01-03 10:49 by Jeff Lau
          可能是字符編碼的問題。你把所有的gb2312改成utf-8試試。

          # jsp保存圖片到數(shù)據(jù)庫與顯示問題!求助!  回復(fù)  更多評(píng)論   

          2008-01-03 13:55 by 龍旋風(fēng)
          我上面的方法是將圖片轉(zhuǎn)換成二進(jìn)制碼的形式存在數(shù)據(jù)庫中,但是如果是中文的圖片名稱就不行,Jeff Lau 你的意思是不是轉(zhuǎn)換編碼格式:
          String filename=request.getParameter("image");
          filename=new String(filename.getBytes("8859_1"),"UTF-8");
          是這樣嗎??

          # re: jsp保存圖片到數(shù)據(jù)庫與顯示問題!求助!  回復(fù)  更多評(píng)論   

          2008-01-08 20:55 by jackiesmith
          已經(jīng)驗(yàn)證,將編碼轉(zhuǎn)換成utf-8,沒有用

          # re: jsp保存圖片到數(shù)據(jù)庫與顯示問題!求助!  回復(fù)  更多評(píng)論   

          2008-01-08 20:55 by jackiesmith
          信息: Server startup in 2125 ms
          數(shù)據(jù)庫插入出錯(cuò)!D:\????.jpg (系統(tǒng)找不到指定的文件。)
          數(shù)據(jù)庫插入出錯(cuò)!D:\????.jpg (系統(tǒng)找不到指定的文件。)

          # re: jsp保存圖片到數(shù)據(jù)庫與顯示問題!求助!  回復(fù)  更多評(píng)論   

          2008-04-02 12:45 by jackiesmith
          是字符編碼的問題,將字符轉(zhuǎn)化成iso-9001就可以了,問題已解決謝謝各位高手!

          # re: jsp保存圖片到數(shù)據(jù)庫與顯示問題!求助!  回復(fù)  更多評(píng)論   

          2012-06-08 15:46 by 585
          8451

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 宜良县| 乌审旗| 黄平县| 鄂温| 潍坊市| 从化市| 桂平市| 信阳市| 宁都县| 萍乡市| 辽中县| 双江| 罗定市| 射阳县| 石泉县| 辉县市| 阿拉尔市| 若羌县| 渑池县| 盐源县| 九台市| 三亚市| 清涧县| 进贤县| 万宁市| 沙田区| 教育| 石首市| 桂阳县| 嘉鱼县| 四会市| 灵山县| 渝北区| 加查县| 丰原市| 米林县| 汨罗市| 甘南县| 保德县| 措勤县| 邛崃市|