小弟想直接上传图片到Oracle的Blob中,诸位仁兄给点思路或提示或资料或源码
....... 问题点数:100、回复次数:7Top
1 楼hegum(大概)回复于 2002-04-17 14:01:53 得分 100
我看到的哈
。。。。。
import java.sql.*;
import java.io.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
public class InsertBlob {
public static int insertBlobData(String fileDate, String fileName, String filePath) throws Exception {
int retVal = 0;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
InputStream fin = null;
OutputStream fout = null;
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thin:@graycell:1521:o8i", "internal", "oracle");
conn.setAutoCommit(false);
stmt = conn.prepareStatement("INSERT INTO tblBlobDemo VALUES (seqBlobDemoID.NextVal, ?, ?, empty_blob())");
stmt.setString(1, fileDate);
stmt.setString(2, fileName);
stmt.execute();
stmt.clearParameters();
stmt = conn.prepareStatement("SELECT FileData FROM tblBlobDemo WHERE FileName = ? FOR UPDATE");
stmt.setString(1, fileName);
rs = stmt.executeQuery();
if(rs.next()) {
BLOB blob = ((OracleResultSet)rs).getBLOB("FileData");
fout = blob.getBinaryOutputStream();
File f = new File(filePath);
fin = new FileInputStream(f);
byte[] buffer = new byte[blob.getBufferSize()];
int bytesRead = 0;
while((bytesRead = fin.read(buffer)) != -1) {
fout.write(buffer, 0, bytesRead);
}
blob = null;
f = null;
buffer = null;
}
stmt.clearParameters();
}
catch(SQLException ex) {
ex.printStackTrace();
retVal = 1;
}
catch(FileNotFoundException ef) {
ef.printStackTrace();
retVal = 2;
}
catch(Exception e) {
e.printStackTrace();
retVal = 3;
}
finally {
try {
fin.close();
fout.close();
conn.commit();
stmt.close();
conn.close();
fin = null;
fout = null;
rs = null;
conn = null;
stmt = null;
}
catch(SQLException e) {
retVal = 1;
}
}
return retVal;
}
}Top
2 楼hegum(大概)回复于 2002-04-17 14:02:29 得分 0
ReadBlob
****************
import java.sql.*;
import java.io.*;
import java.lang.String;
import oracle.sql.*;
import oracle.jdbc.driver.*;
public class ReadBlob {
public int extractBlob(int fileId, String fileName, String absPath) throws Exception {
int retVal = 0;
Connection conn = null;
PreparedStatement stmt = null;
InputStream in = null;
OutputStream out = null;
BLOB blob = null;
ResultSet rs = null;
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thin:@graycell:1521:o8i", "internal", "oracle");
conn.setAutoCommit(false);
stmt = conn.prepareStatement("Select FileData FROM tblBlobDemo WHERE FileId = ?");
stmt.setInt(1, fileId);
rs = stmt.executeQuery();
if(rs.next()) {
blob = ((OracleResultSet)rs).getBLOB("FileData");
}
in = blob.getBinaryStream();
String filePath = absPath + fileName;
out = new FileOutputStream(filePath);
int bufferSize = blob.getBufferSize();
byte[] buffer = new byte[bufferSize];
int bytesRead = 0;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
stmt.clearParameters();
buffer = null;
}
catch(SQLException ex) {
ex.printStackTrace();
retVal = 1;
}
catch(Exception e) {
e.printStackTrace();
retVal = 2;
}
finally {
try {
in.close();
out.close();
conn.commit();
stmt.close();
conn.close();
in = null;
blob = null;
rs = null;
out = null;
conn = null;
stmt = null;
}
catch(SQLException e) {
retVal = 1;
}
}
return retVal;
}
}Top
3 楼m2002(头回出差)回复于 2002-04-17 16:07:44 得分 0
多谢,先研究一下Top
4 楼m2002(头回出差)回复于 2002-04-17 16:10:28 得分 0
通过Http提交的方式Top
5 楼m2002(头回出差)回复于 2002-04-17 16:54:18 得分 0
救命Top
6 楼hegum(大概)回复于 2002-04-18 09:44:48 得分 0
你是哪里不会啊?Top
7 楼m2002(头回出差)回复于 2002-04-18 20:55:09 得分 0
多谢。送分。Top
相关问题
- 各位仁兄,谁有MasteringJavabeans的例子程序源码?
- 哪位仁兄,研究过FASTREPORT的源码,请进来!!
- 问:哪位仁兄有treeview控件的 源码?
- 哪位仁兄有JAVA实现的多叉树源码?部分的也行!
- Oracle中照片压缩问题?请各位仁兄解决.
- 哪里可以搞到DOA(Direct Access Oracle 3.30的源码?
- 请问哪位仁兄知道www.active.com.cn上的代码是如何隐藏的,我点右键点查看源码不好使呀~~
- 求援:哪位仁兄可能提供在工作线程里不停地读取UDP数据报的一小段源码,谢谢!
- 在Oracle中写BLOB字段
- 有没有哪位仁兄基于oracle搞过空间数据挖掘方面的研究?




