<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<% //首先是将文件输入到数据库。
Class.forName("oracle.jdbc.driver.OracleDriver");//注册数据库引擎。
String dbURL = "jdbc:oracle:thin:@192.168.1.69:1521:mtnet";
String user = "mtuser";
String passWord = "user";
Connection conn = DriverManager.getConnection(dbURL, user, passWord);
conn.setAutoCommit(false);//关闭自动提交,以提高性能。
Statement stmt = conn.createStatement();//建立会话 String sqlStr = "";
String fileName = "";
String displayMessage = "";
try
{ File file = new File("D:\\test.jpg");
fileName = file.getName();
FileInputStream inStream = new FileInputStream(file);//创建输入流,将外部文件输入到InputStream 中。
byte[] buffer = new byte[inStream.available()];
sqlStr = "INSERT INTO edu_pic(pictitle,picdata) VALUES ('" + fileName + "', empty_blob())";
stmt.execute(sqlStr);
ResultSet rs = stmt.executeQuery("select picdata from edu_pic where pictitle='" + fileName + "' for update");
if(rs.next())
{
oracle.sql.BLOB blob = ((oracle.jdbc.OracleResultSet)rs).getBLOB("picdata");
OutputStream outStream = blob.getBinaryOutputStream();
inStream.read(buffer);
outStream.write(buffer);
outStream.flush();
stmt.execute("commit");
outStream.close();
System.out.println("文件成功写入数据库");
}
inStream.close();
rs.close();
}
catch(SQLException e)
{
e.printStackTrace();
System.out.println("数据库异常1:" + e.getMessage());
}%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<% //首先是将文件输入到数据库。
Class.forName("oracle.jdbc.driver.OracleDriver");//注册数据库引擎。
String dbURL = "jdbc:oracle:thin:@192.168.1.69:1521:mtnet";
String user = "mtuser";
String passWord = "user";
Connection conn = DriverManager.getConnection(dbURL, user, passWord);
conn.setAutoCommit(false);//关闭自动提交,以提高性能。
Statement stmt = conn.createStatement();//建立会话 String sqlStr = "";
String fileName = "";
String displayMessage = "";
try
{ File file = new File("D:\\test.jpg");
fileName = file.getName();
FileInputStream inStream = new FileInputStream(file);//创建输入流,将外部文件输入到InputStream 中。
byte[] buffer = new byte[inStream.available()];
sqlStr = "INSERT INTO edu_pic(pictitle,picdata) VALUES ('" + fileName + "', empty_blob())";
stmt.execute(sqlStr);
ResultSet rs = stmt.executeQuery("select picdata from edu_pic where pictitle='" + fileName + "' for update");
if(rs.next())
{
oracle.sql.BLOB blob = ((oracle.jdbc.OracleResultSet)rs).getBLOB("picdata");
OutputStream outStream = blob.getBinaryOutputStream();
inStream.read(buffer);
outStream.write(buffer);
outStream.flush();
stmt.execute("commit");
outStream.close();
System.out.println("文件成功写入数据库");
}
inStream.close();
rs.close();
}
catch(SQLException e)
{
e.printStackTrace();
System.out.println("数据库异常1:" + e.getMessage());
}%>
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import oracle.jdbc.driver.*;public class ShowBlob extends HttpServlet{
public void doGet(HttpServletRequest req,
HttpServletResponse res) throws ServletException,IOException{
doPost(req,res);
}
public void doPost (HttpServletRequest req,
HttpServletResponse res) throws ServletException,IOException{
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String name=req.getParameter("blobname");
Connection conn = DriverManager.getConnection (url, "coca","coca");
Statement stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery ("select type,content,head from webblob where name like '%"+name+"%'");
if(rset.next()){
String contentType=rset.getString(1);
System.err.println(contentType);
if (contentType.length()>0){
res.setContentType(contentType);
}
else{
res.setContentType("unknown/unknown");
}
//res.setHeader("Content-disposition",rset.getString(3));
System.err.println("Content-disposition:"+rset.getString(3));
Blob blob=rset.getBlob(2);
ServletOutputStream out = res.getOutputStream ();
BufferedInputStream bis =new BufferedInputStream(blob.getBinaryStream());
BufferedOutputStream bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while((bytesRead = bis.read(buff, 0, buff.length))!=-1) {
bos.write(buff, 0, bytesRead);
}
}
else{
PrintWriter out = res.getWriter();
out.println("没有检索到符合条件的数据!");
}
rset.close();
stmt.close();
conn.close();
}
catch (SQLException e) {
res.setContentType("text/html;charset=gb2312");
PrintWriter out = res.getWriter();
out.println("<html><body>jdbc 错误"+e.getMessage()+"</body></html>");
}
catch(IOException ioe) {
res.setContentType("text/html;charset=gb2312");
PrintWriter out = res.getWriter();
out.println("<html><body>系统出错!"+ioe.getMessage()+"</body></html>");
}
}
}
res.setContentType(contentType);//其中contentType是什么格式比如文件为jpg格式,谢了