魔獸傳奇

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

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

          1.數(shù)據(jù)庫(kù):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頁(yè)面,前臺(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文件是用來(lái)將圖片數(shù)據(jù)存入數(shù)據(jù)庫(kù)中。
          <%@ 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ù)庫(kù)聯(lián)機(jī),其中denglu為數(shù)據(jù)庫(kù)名,sa為連接數(shù)據(jù)庫(kù)的帳號(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ù)庫(kù)
          out.println("Success,You Have Insert an Image Successfully");
          %>


          評(píng)論

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

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

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

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

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

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

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

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

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

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

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

          2012-06-08 15:46 by 585
          8451

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 洪江市| 新密市| 天祝| 客服| 滕州市| 东莞市| 阳山县| 白玉县| 宜宾县| 阿合奇县| 布尔津县| 盖州市| 中宁县| 上杭县| 绥化市| 绥德县| 横峰县| 紫云| 孟津县| 财经| 延寿县| 江油市| 九龙城区| 双峰县| 威信县| 临猗县| 常熟市| 喀喇| 游戏| 曲阳县| 专栏| 革吉县| 乌鲁木齐市| 德清县| 芜湖县| 宁安市| 宁强县| 恩平市| 建宁县| 辽中县| 乃东县|