在网上找了些例子,都不怎么完全,
以前没接触过从数据库中读取图片~~
因为比较急~~~~
请给个完整的例子~~~~谢谢~~~~
------解决方案--------------------
帮顶~
------解决方案--------------------
数据库里取图片,图片是怎么存在数据库里的?
------解决方案--------------------
在数据库里图片存的是二进制还是路径呀
------解决方案--------------------
对啊,没说清楚是用blob存储的还是用路径
如果是用blob的,先去网上查下怎么把blob读取到文件流
我这里给你贴个片段,片段里面如何获取数据库连接的代码被我删掉了,因为不同的系统不一样
ByteArrayOutputStream bao = new ByteArrayOutputStream();
st = conn.createStatement();
if(iTimeOut>0)st.setQueryTimeout(iTimeOut);
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
//到数据库的输出流
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob(fieldName);
InputStream blobReader = blob.getBinaryStream();
byte[] b = new byte[blob.getBufferSize()];
int len=-1;
while ((len=blobReader.read(b)) != -1) {
bao.write(b, 0, len);
}
bao.flush();
bao.close();
}else{
rs.close();
st.close();
return null;
}
st.close();
rs.close();
return bao;
然后在JSP里面写这些代码
ServletOutputStream sos = response.getOutputStream();
baos.writeTo(sos);//baos就是文件流
sos.flush();
这样图片就显示出来了。
------解决方案--------------------
- Java code
<%@ page contentType="text/html;charset=GBK"%><%request.setCharacterEncoding("GBK");%><%@ page import="java.util.*" %><%@ page import="javazoom.upload.*"%><% if (MultipartFormDataRequest.isMultipartFormData(request)) { MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request); Hashtable files = mrequest.getFiles(); if ((files != null) || (!files.isEmpty())) { UploadFile file = (UploadFile) files.get("uploadfile"); String file_name = file.getFileName(); PreparedStatement pstmt=con.prepareStatement("insert into blobtest values(1,?)"); FileInputStream fis = new FileInputStream(file.getInpuStream()); //把输入流设置为预处理语句的对象。 pstmt.setBinaryStream(1, fis, (int)file.length()); //执行更新 pstmt.executeUpdate(); pstmt.close(); } }
------解决方案--------------------
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<jsp:useBean id="sqlConn" scope="application" class="dgeip.OraconnDg"/>
<%
Connection con=null;
Statement stmt=null;
try{
con=sqlConn.getConnection();
stmt=con.createStatement();//数据库的连接
String sql="select * from dd_model WHERE model_no='07002'";
ResultSet rs=stmt.executeQuery(sql);
rs.next();
InputStream in=rs.getBinaryStream("shoe_pic");
response.reset();
response.setContentType("image/jpeg");
byte[] b=new byte[1024];
int len;
while((len=in.read(b))>0)
{
response.getOutputStream().write(b,0,len);
}
out.clear();
out = pageContext.pushBody();
in.close();
rs.close();
stmt.close();
con.close();