站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题JSP向MYSQL数据库BLOB字段插入和显示图片的问题.请高手指点啊!

JSP向MYSQL数据库BLOB字段插入和显示图片的问题.请高手指点啊!

摘要: JSP向MYSQL数据库BLOB字段插入和显示图片的问题.请高手指点啊!


我的这两段代码是插入和显示的,可是显示的时候,总是图片显示不正确(一个X)...我不清楚是不是我的代码有问题啊,或者是请高手指点一下,有没有更好的代码..

谢谢大家,帮帮我吧.

insert.jsp
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*,java.util.*,java.text.*,java.io.*,com.sun.image.codec.jpeg.*" %>

<%
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");

FileInputStream str = new FileInputStream(filename);

//String sql = "insert into image(caption,content,image) values('"+content+"','"+detail+"','"+str+"')";

String sql = "insert into image(content,detail,image) values(?,?,?)";

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/newsissuance?user=root&password=");
PreparedStatement pstmt=conn.prepareStatement(sql);
//pstmt.setInt(1,1);
pstmt.setString(1,content);
pstmt.setString(2,detail);
pstmt.setBinaryStream(3,str,(int)filename.length());
pstmt.executeUpdate();

out.print(sql);
%>

show.jsp

<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.sql.*, javax.sql.*,java.math.*"%>

<%
//String photo_no = request.getParameter("photo_no");
String url="jdbc:mysql://localhost:3306/newsissuance?user=root&password=";
Connection conn = DriverManager.getConnection(url);

try
{
Statement stmt = conn.createStatement();
//String sql = "select * from image where id = "+ photo_no;
String sql = "select * from image where id = 2";
ResultSet rs = stmt.executeQuery(sql);

if (rs.next())
{
Blob b = rs.getBlob("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
{
conn.close();
}
%>



在finally前面弄一段
catch(Excaption e)
{
e.PrintStackTrace();
}
捕捉一下错误,看看有上面错误信息没有?


没有错误信息啊,就是正常的显示.只不过图片显示不出来而已啊!


mei cun shang


Blob photo = rs.getBlob("image");
InputStream in = photo.getBinaryStream();
OutputStream out = response.getOutputStream();
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) != -1) {
out.write(buf, 0, len);
}
in.close();
out.close();


↑返回目录
前一篇: 开始学JSP,大家给点建议
后一篇: 谁有applet通信servlet并存入数据库的例子