jsp資料庫圖片
① jsp中 怎麼把圖片直接存入資料庫中,最好有例子
....首先..可以選擇Apache裡面的upload包....這個是把文件傳到伺服器上的上傳組件....然後是存到資料庫里....那就要看你什麼資料庫了....比如Oracle..就是Blob至Access...就是
對象
欄位....存取方法都是不一樣的..要分別對待
有個通用方法,你找到圖片文件之後,建立輸入流,然後創建bytearrayoutputstream,然後從輸入流中讀位元組到後面那個流中,並沖它裡面產生位元組數組保存到byte欄位中
其實建議你不要將圖片直接上傳到資料庫
圖片上傳到資料庫要用到
blob大對象(以oracle為例),這樣影響程序性能,你可以將圖片上傳到指定文件夾,同時將圖片保存的路徑+文件名上傳到資料庫,要顯示就讀取這個這個路徑找到圖片,然後顯示.剛做了個這個代碼
② JSP 從資料庫中如何取得圖片的路徑
我的筆記:
6:對資料庫存取圖片進行的操作:
核心思想:通過二進制流的形式進行存儲和讀取。
具體:存儲圖片:一般是通過文件上傳的方式進行存儲的
1.首先通過request獲得表單中圖片的地址
2.然後根據這個路徑可以使FileInputStream獲得文件輸入流
3.pstmt.setBinaryStream(i,
fis,
fis.available())
最後pstmt.executeUpdate();就完成整個插入語句了。
讀取:1.根據url的id傳一個對應資料庫摸個圖片的id號
2.根據這個id執行查詢,通過rst.getBinaryStream(1)返回一個輸入流(裡面存的是圖片)
3.讀輸入流,放到位元組數組中,再通過response返回一個能輸出二進制流的ServletOutputStream實例(ServletOutputStream
sos=
response.getOutputStream();
),
4.通過這個輸出流把位元組數組的位元組流寫出
希望對你有所幫助哈
③ 資料庫中照片怎麼在jsp中顯示
用JSP從資料庫中讀取圖片並顯示在網頁上:
環境mysql+tomcat:
<1>先在mysql下建立如下的table. 並insert圖像
mysql.sql文件如下:
CREATE TABLE photo (
photo_no int(6) unsigned NOT NULL auto_increment,
image blob,
PRIMARY KEY (`photo_no`)
)
<2>把show.jsp放在tomcat的任意目錄下. show.jsp作用:從資料庫中讀出blob,並產生image/jpg.
show.jsp文件如下:
<%@ page contentType="text/html; charset=gbk" %>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%@ page import="java.util.*"%>
<%@ page import="java.math.*"%>
<%
String photo_no = request.getParameter("photo_no");
//mysql連接
Class.forName("com.mysql.jdbc.Driver").newInstance();
String URL="jdbc:mysql://localhost:3306/job?user=root&password=111111";
Connection con = DriverManager.getConnection(URL);
//oracle連接
//String URL="jdbc:oracle:thin@localhost:1521:orcl2";
//user="system";
//password="manager";
//Connection con = DriverManager.getConnection(URL,user,password);
try{
// 准備語句執行對象
Statement stmt = con.createStatement();
String sql = " SELECT * FROM PHOTO WHERE photo_no = "+ photo_no;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
Blob b = rs.getBlob("photo_image");
long size = b.length();
//out.print(size);
byte[] bs = b.getBytes(1, (int)size);
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
outs.write(bs);
outs.flush();
rs.close();
}
else {
rs.close();
response.sendRedirect("./images/error.gif");
}
}
finally{
con.close();
}
%>
<3>把如下文件放在show.jsp的同一目錄下.
index.html文件如下:
<HTML>
<HEAD>
<TITLE> 圖像測試 </TITLE>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD>圖像測試</TD>
</TR>
<TR>
<TD><img src="show.jsp?photo_no=2"></TD>
</TR>
</TABLE>
</BODY>
</HTML>
④ jsp如何上傳圖片到資料庫
jsp上傳圖片到數據,在資料庫中有一種類型就是blob存儲類型,就是用於儲存二進制的。在java.sql裡面的PreparedStatment有個setBlob()方法存入資料庫,還有ResultSet里的getBlob()就是讀取,詳情你可以看JDBC Blob如何使用。
在jsp里上傳圖片很少用上述方式存儲到資料庫中,一般是將圖片上傳到伺服器項目目錄文件夾中,然後資料庫中保存該圖片文件的地址,如/item/upload/images/我上傳的圖片.jpg
⑤ jsp讀取資料庫的圖片
你資料庫里存的路徑是相對項目的路徑還是相對磁碟的文件路徑??
如果是類似於E:\images\demo.jpg這樣的路徑存到資料庫里也不能直接顯示,只能用IO將文件讀到流裡面在頁面上輸出才可以顯示圖片
是相對於項目的路徑images/demo.jpg這樣的路徑樓上的答案就可以解決你的問題了。
⑥ jsp顯示資料庫存儲目錄的圖片
首先,代碼是不會有的了。
其次你要把圖片存入資料庫,資料庫只存儲圖片的目錄。這兩句話本身就互斥好吧……姑且以後半句為例,講講思路。
你在一個文件夾中存儲了圖片,在資料庫里應該有個表。這個表起碼有ID,有文件名filename,有路徑這三個欄位。路徑path存儲的是相對路徑,並且是你項目有權訪問的路徑。
在java程序中讀取這個表的數據,將path和filename拼接成完整的相對路徑+文件名的形式。在eclipse中新建jsp的時候,會自動生成獲取basePath的代碼。basePath是當前頁面所在項目的根目錄,用basePath
+
path
+
filename就可以顯示出圖片了
⑦ 讀取保存在資料庫里的圖片JSP頁面顯示無法顯示圖片
我把你的代碼稍微改造了下,我這邊是可以顯示圖片的。代碼如下:
資料庫操作部分:
packagecom.database;
importjava.io.InputStream;
importjava.sql.*;
/**
*@作者王建明
*@創建日期13-10-7
*@創建時間下午12:32
*@版本號V1.0
*/
publicclassDataBaseUtil{
(){
Connectionconn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn=
DriverManager.getConnection("jdbc:mysql://localhost/quickstart","root","123456");
Statementstmt=conn.createStatement();
Stringsql="selectbook_imagefromtbl_bookwhereid=1";
ResultSetrs=stmt.executeQuery(sql);
if(rs.next()){
returnrs.getBinaryStream("book_image");
}
}catch(Exceptione){
System.out.println("出現異常:"+e.getMessage());
}finally{
try{
if(conn!=null)
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
returnnull;
}
}
servlet部分:
packagecom.servlet;
importcom.database.DataBaseUtil;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
/**
*@作者王建明
*@創建日期13-10-7
*@創建時間下午12:18
*@版本號V1.0
*/
{
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doGet(request,response);
}
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
InputStreamin=DataBaseUtil.getImageStreamFromDataBase();
OutputStreamtoClient=response.getOutputStream();
response.reset();
response.setContentType("image/jpg");//或gif
intlen=10*1024*1024;
byte[]P_Buf=newbyte[len];
inti;
while((i=in.read(P_Buf))!=-1){
toClient.write(P_Buf,0,i);
}
in.close();
toClient.flush();
toClient.close();
}
}
web.xml中的servlet配置:
<servlet>
<servlet-name>ShowImage</servlet-name>
<servlet-class>com.servlet.ShowImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowImage</servlet-name>
<url-pattern>/showImage</url-pattern>
</servlet-mapping>
頁面中載入圖片方式:
<imgsrc="showImage"/>
希望對你有幫助O(∩_∩)O~
⑧ 如何添加圖片,在JSP和資料庫中
一般來說是不用將圖片直接存在資料庫中的,可以將圖片的路徑存在資料庫中,然後在JSP
頁面中利用<img
src="圖片路徑">將圖片顯示出來
⑨ 在JSP中怎樣將圖片上傳到資料庫中
到資料庫?
你可以建一個文件夾來保存上傳的圖片,
然後將圖片的文件名保存到資料庫中。
要用的時候在根據圖片的文件名到該文件夾下面去讀取顯示出來