在JSP中上傳圖片到資料庫中

來源:互聯網
上載者:User

標籤:

 1 第一步:建立資料庫  2 create table test_img(id number(4),name varchar(20),img long raw);  3 第二步:(NewImg.html)  4 <html><head><title>添加圖片</title></head>  5 <body>  6 添加圖片<br>  7 <form method="post" action="insertNews.jsp">  8 映像ID:<input name="id" size="10">  9 <br> 10 選擇映像:<input type="file" name="image"> 11 <br> 12 <input type="submit" value="上傳" name="submit" size="25"> 13 <input type="reset" value="清除" name="clear" size="25"> 14 <br> 15 </form> 16 </body></html> 17 第三步:插入資料庫(InsertImg.jsp) 18 <%@ page language="java"%> 19 <%@ page contentType="text/html;charset=gb2312" %> 20 <%@ page import="java.util.*" %> 21 <%@ page import="java.sql.*"%> 22 <%@ page import="java.text.*"%> 23 <%@ page import="java.io.*"%> 24 <% 25 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //com.microsoft.jdbc.sqlserver.SQLserveDriver26 String url="jdbc:oracle:thin:@lubin:1521:b2bdb";               //jdbc:microsoft:sqlserver://127.0.0.1:1433;  jdbc:microsoft.sqlserver://127.0.0.1:143327 Connection con=DriverManager.getConnection(url,"demo","demo"); 28 //插入資料庫 29 String sql="insert into test_img values (?,?,?)"; 30 //擷取傳值ID 31 String id=request.getParameter("id"); 32 //擷取image的路徑 33 String kk=request.getParameter("image"); 34 //轉換成file格式 35 File filename=new File(kk); 36 //將檔案的長度讀出,並轉換成Long型 37 long l1=filename.length(); 38 int l2=(int)l1; 39 //以流的格式賦值 40 FileInputStream fis=new FileInputStream(filename); 41 PreparedStatement ps =con.prepareStatement(sql); 42 ps.setString(1,id); 43 ps.setString(2,filename.getName()); 44 ps.setBinaryStream(3,fis,l2); 45 //ps.setBinaryStream(3,fis,fis.available()); 46 ps.executeUpdate(); 47 //ps.execute(); 48 ps.close(); 49 fis.close(); 50 out.println("ok!!!"); 51 %> 52 第四步:顯示圖片(ShowImg.jsp) 53 <%@ page language="java" import="java.sql.*"%> 54 <%@ page import="java.io.*"%> 55 <%@ page contentType="text/html;charset=gb2312"%> 56 <% 57 Class.forName("oracle.jdbc.driver.OracleDriver"); 58 String url="jdbc:oracle:thin:@lubin:1521:b2bdb"; 59 String image_id = (String) request.getParameter("ID"); 60 Connection con=DriverManager.getConnection(url,"demo","demo"); 61 PreparedStatement sql=con.prepareStatement("select * from test_img WHERE id = " + image_id); 62 ResultSet rs = sql.executeQuery(); 63 rs.next(); 64 //輸入img欄位內容到in 65 InputStream in = rs.getBinaryStream("img"); 66 //以下可是任何處理,比如向頁面輸出: 67 response.reset(); 68 response.setContentType("image/jpeg"); 69 byte[] b = new byte[1024]; 70 int len; 71 while((len=in.read(b)) >0) 72 response.getOutputStream().write(b,0,len); 73 in.close(); 74 rs.close(); 75 %>

上傳頁面 一定要用POST 還要l加一個屬性 enctype="multipart/form-data", 進去了才解析請求體才能得到的

你寫 <file name="filename" /> 你在服務端 request.getParameter("filename"); 是得不到的
因為這些資料和 上傳的檔案流都封裝在請求體中, 要解析的

你如果只要檔案名稱: 可以這樣
<file name="file" />
<hidden type="text" name="filename" /> 

 

<%--
類型enctype用multipart/form-data,這樣可以把檔案中的資料作為流式資料上傳,不管是什麼檔案類型,均可上傳。
--%>

在JSP中上傳圖片到資料庫中

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.