首先在mysql中创建一个表 picture_db
CREATE TABLE `picture_db` (
`id` int(11) not NULL,
`content` varchar(200) default NULL,
`image` blob
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。
--------------------------------------------------------------------
testimage.html文件内容如下:
<html>
<head>
<title>testimage.html</title>
<head>
<title>testimage.html</title>
</head>
<body>
<h1>上传图片</h1>
<FORM METHOD=POST ACTION="testimage.jsp">
<INPUT TYPE="text" NAME="content">
<BR>
<INPUT TYPE="file" NAME="image">
<BR>
<INPUT TYPE="submit">
</FORM>
</body>
</html>
<h1>上传图片</h1>
<FORM METHOD=POST ACTION="testimage.jsp">
<INPUT TYPE="text" NAME="content">
<BR>
<INPUT TYPE="file" NAME="image">
<BR>
<INPUT TYPE="submit">
</FORM>
</body>
</html>
--------------------------------------------------------------------
存储在mysql数据库中
我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:
我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'testimage.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GB2312";
//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改
Connection conn = DriverManager.getConnection(url,"root","123456");
String content = request.getParameter("content");
String filename = request.getParameter("image");
FileInputStream str = new FileInputStream(filename);
String sql = "insert into picture_db (id,content,image) values(1,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, content);
pstmt.setBinaryStream(2, str, str.available());
pstmt.execute();
out
.println("<h3>Success,You Have Insert an Image Successfully</h3>");
%>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GB2312";
//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改
Connection conn = DriverManager.getConnection(url,"root","123456");
String content = request.getParameter("content");
String filename = request.getParameter("image");
FileInputStream str = new FileInputStream(filename);
String sql = "insert into picture_db (id,content,image) values(1,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, content);
pstmt.setBinaryStream(2, str, str.available());
pstmt.execute();
out
.println("<h3>Success,You Have Insert an Image Successfully</h3>");
%>
</body>
</html>
</html>
--------------------------------------------------------------------
显示图片testimageout.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'testimageout.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>显示图片</h1>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GB2312";
//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改
Connection conn = DriverManager
.getConnection(url, "root", "123456");
String sql = "select image from picture_db where id=1";
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
}
try {
while (rs.next()) {
response.setContentType("image/jpeg");
ServletOutputStream sout = response.getOutputStream();
InputStream in = rs.getBinaryStream(1);
byte b[] = new byte[0x7a120];
for (int i = in.read(b); i != -1;) {
sout.write(b);
in.read(b);
}
sout.flush();
sout.close();
}
} catch (Exception e) {
System.out.println(e);
}
%>
</body>
</html>
<h1>显示图片</h1>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GB2312";
//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改
Connection conn = DriverManager
.getConnection(url, "root", "123456");
String sql = "select image from picture_db where id=1";
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
}
try {
while (rs.next()) {
response.setContentType("image/jpeg");
ServletOutputStream sout = response.getOutputStream();
InputStream in = rs.getBinaryStream(1);
byte b[] = new byte[0x7a120];
for (int i = in.read(b); i != -1;) {
sout.write(b);
in.read(b);
}
sout.flush();
sout.close();
}
} catch (Exception e) {
System.out.println(e);
}
%>
</body>
</html>
文章引用自: