//--------->以下基于strutsimport org.apache.struts.upload.*; //5、大字段上传
private static final String SQL_INSERT_BLOB_UPLOAD=
"SELECT M_FILE FROM T_MONITOR " +
"WHERE M_ID=? FOR UPDATE"; //大字段上传
public void blobUpload(DBAccess dba,FormFile file) throws ObjectException{
try{
InputStream stream = file.getInputStream();
ResultSet rs=null; if(file.getFileSize()>0){ //有内容
byte[] bytes=file.getFileData();
dba.prepareStatement(SQL_INSERT_BLOB_UPLOAD);
if(strInsertReturnValue!=null){
dba.setString(1,strInsertReturnValue);
rs=dba.executeQuery();
if(rs.next()){ //有返回结果
oracle.sql.BLOB blob=((oracle.jdbc.OracleResultSet)rs).getBLOB("M_FILE");
OutputStream outStream = blob.getBinaryOutputStream();
outStream.write(bytes); //写入大字段
outStream.flush();
}
}else{
throw new ObjectException("上传大字段时没有取得m_id的值!");
}
}
}catch(Exception ex){
ex.printStackTrace();
throw new ObjectException(ex.getMessage());
}
}ActionForm子类的定义:
public class FileMonitorForm extends ActionForm {
private FormFile file=null; //附件
...
}
private static final String SQL_INSERT_BLOB_UPLOAD=
"SELECT M_FILE FROM T_MONITOR " +
"WHERE M_ID=? FOR UPDATE"; //大字段上传
public void blobUpload(DBAccess dba,FormFile file) throws ObjectException{
try{
InputStream stream = file.getInputStream();
ResultSet rs=null; if(file.getFileSize()>0){ //有内容
byte[] bytes=file.getFileData();
dba.prepareStatement(SQL_INSERT_BLOB_UPLOAD);
if(strInsertReturnValue!=null){
dba.setString(1,strInsertReturnValue);
rs=dba.executeQuery();
if(rs.next()){ //有返回结果
oracle.sql.BLOB blob=((oracle.jdbc.OracleResultSet)rs).getBLOB("M_FILE");
OutputStream outStream = blob.getBinaryOutputStream();
outStream.write(bytes); //写入大字段
outStream.flush();
}
}else{
throw new ObjectException("上传大字段时没有取得m_id的值!");
}
}
}catch(Exception ex){
ex.printStackTrace();
throw new ObjectException(ex.getMessage());
}
}ActionForm子类的定义:
public class FileMonitorForm extends ActionForm {
private FormFile file=null; //附件
...
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货