这个是把图片显示在浏览器上的
package struts.action;import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class EnrolRushRedLightPhotoManagePhotoDisplayAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response)
{
String username,password,url;
Connection conn = null;
Statement stmt = null;
BufferedInputStream inputimage=null;
username="dzjc";
password="dzjc";
url ="jdbc:oracle:thin:@192.168.1.134:1521:zhpt";
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
try
{
conn=DriverManager.getConnection(url,username,password);
stmt=conn.createStatement();
boolean defaultCommit = conn.getAutoCommit();
conn.setAutoCommit(false);
ResultSet rs = stmt.executeQuery("SELECT img FROM dzjc_img");
while (rs.next())
{
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("img");
inputimage = new BufferedInputStream(blob.getBinaryStream());
}
conn.setAutoCommit(defaultCommit);
}
catch (SQLException e)
{
e.printStackTrace();
System.out.println("blobRead()'s exception"+e);
try
{
conn.rollback();
throw e;
}
catch (SQLException e1)
{
e1.printStackTrace();
}
}
}
catch (ClassNotFoundException e1)
{
e1.printStackTrace();
}
BufferedImage image = null;
try
{
image = ImageIO.read(inputimage);
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
inputimage.close();
}
catch(IOException e)
{
System.out.println(e);
}
return mapping.findForward("display");
}
}
下边这个是把硬盘上的文件存到数据库里,你可以跟上个类关联起来一起用
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFileChooser;
import oracle.jdbc.driver.OracleConnection;
public class Write
{
public static void main(String[] args)
{
try {
Writewatdb = new Write();
watdb.sendToDb();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
Connection conn;
Statement stmt;
ResultSet rs;
int bufferSize;
public Write() throws SQLException, ClassNotFoundException
{
String connectString;
Class.forName("oracle.jdbc.driver.OracleDriver");
connectString = "jdbc:oracle:thin:@192.168.1.134:1521:zhpt";
conn = (OracleConnection)
DriverManager.getConnection(connectString, "dzjc","dzjc");
stmt = conn.createStatement();
}
public void sendToDb()
{
int amount = 0;
OutputStream out = null;
BufferedInputStream in = null;
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
pathname = chooser.getSelectedFile().getAbsolutePath();
name = chooser.getSelectedFile().getName();
chooser = null;
}
else
{
System.out.println("没有找到文件!");
System.out.println("程序非正常结束...");
return;
}
try
{
conn.setAutoCommit(false);
stmt.executeUpdate("insert into dzjc_img(img) values (empty_blob())");
rs = stmt.executeQuery("select img from dzjc_img for update");
if (rs.next())
{
Blob blob = rs.getBlob("img");
out = ( (oracle.sql.BLOB) blob).getBinaryOutputStream();
bufferSize = ( (oracle.sql.BLOB) blob).getBufferSize();
in = new BufferedInputStream(new FileInputStream(pathname), bufferSize);
byte[] b = new byte[bufferSize];
int count = in.read(b, 0, bufferSize);
while (count != -1)
{
out.write(b, 0, count);
amount += count;
System.out.println("处理了" + amount + "字节.");
count = in.read(b, 0, bufferSize);
System.out.println("处理了" + amount + "字节,成功.");
}
out.close();
out = null;
in.close();
in = null;
conn.commit();
}
}
catch (Exception e)
{
e.printStackTrace();
try
{
conn.rollback();
}
catch (Exception ignored) {}
}
finally
{
if (out!=null) try{out.close();} catch(Exception igored){}
if (in!=null) try{in.close();} catch(Exception igored){}
}
}
}
package struts.action;import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class EnrolRushRedLightPhotoManagePhotoDisplayAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response)
{
String username,password,url;
Connection conn = null;
Statement stmt = null;
BufferedInputStream inputimage=null;
username="dzjc";
password="dzjc";
url ="jdbc:oracle:thin:@192.168.1.134:1521:zhpt";
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
try
{
conn=DriverManager.getConnection(url,username,password);
stmt=conn.createStatement();
boolean defaultCommit = conn.getAutoCommit();
conn.setAutoCommit(false);
ResultSet rs = stmt.executeQuery("SELECT img FROM dzjc_img");
while (rs.next())
{
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("img");
inputimage = new BufferedInputStream(blob.getBinaryStream());
}
conn.setAutoCommit(defaultCommit);
}
catch (SQLException e)
{
e.printStackTrace();
System.out.println("blobRead()'s exception"+e);
try
{
conn.rollback();
throw e;
}
catch (SQLException e1)
{
e1.printStackTrace();
}
}
}
catch (ClassNotFoundException e1)
{
e1.printStackTrace();
}
BufferedImage image = null;
try
{
image = ImageIO.read(inputimage);
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
inputimage.close();
}
catch(IOException e)
{
System.out.println(e);
}
return mapping.findForward("display");
}
}
下边这个是把硬盘上的文件存到数据库里,你可以跟上个类关联起来一起用
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFileChooser;
import oracle.jdbc.driver.OracleConnection;
public class Write
{
public static void main(String[] args)
{
try {
Writewatdb = new Write();
watdb.sendToDb();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
Connection conn;
Statement stmt;
ResultSet rs;
int bufferSize;
public Write() throws SQLException, ClassNotFoundException
{
String connectString;
Class.forName("oracle.jdbc.driver.OracleDriver");
connectString = "jdbc:oracle:thin:@192.168.1.134:1521:zhpt";
conn = (OracleConnection)
DriverManager.getConnection(connectString, "dzjc","dzjc");
stmt = conn.createStatement();
}
public void sendToDb()
{
int amount = 0;
OutputStream out = null;
BufferedInputStream in = null;
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
pathname = chooser.getSelectedFile().getAbsolutePath();
name = chooser.getSelectedFile().getName();
chooser = null;
}
else
{
System.out.println("没有找到文件!");
System.out.println("程序非正常结束...");
return;
}
try
{
conn.setAutoCommit(false);
stmt.executeUpdate("insert into dzjc_img(img) values (empty_blob())");
rs = stmt.executeQuery("select img from dzjc_img for update");
if (rs.next())
{
Blob blob = rs.getBlob("img");
out = ( (oracle.sql.BLOB) blob).getBinaryOutputStream();
bufferSize = ( (oracle.sql.BLOB) blob).getBufferSize();
in = new BufferedInputStream(new FileInputStream(pathname), bufferSize);
byte[] b = new byte[bufferSize];
int count = in.read(b, 0, bufferSize);
while (count != -1)
{
out.write(b, 0, count);
amount += count;
System.out.println("处理了" + amount + "字节.");
count = in.read(b, 0, bufferSize);
System.out.println("处理了" + amount + "字节,成功.");
}
out.close();
out = null;
in.close();
in = null;
conn.commit();
}
}
catch (Exception e)
{
e.printStackTrace();
try
{
conn.rollback();
}
catch (Exception ignored) {}
}
finally
{
if (out!=null) try{out.close();} catch(Exception igored){}
if (in!=null) try{in.close();} catch(Exception igored){}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货