📄 officeserver.jsp
字号:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%@ page import="java.text.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.text.DateFormat" %>
<%@ page import="java.util.Date" %>
<%@ page import="oracle.sql.BLOB" %>
<%@ page import="oracle.jdbc.*" %>
<%@ page import="DBstep.iMsgServer2000.*" %>
<%@ page import="DBstep.iDBManager2000.*" %>
<%!
private int mFileSize;
private byte[] mFileBody;
private String mFileName;
private String mFileType;
private String mFileDate;
private String mFileID;
private int mTemplateId;
private String mRecordID;
private String mTemplate;
private String mDateTime;
private String mOption;
private String mMarkName;
private String mPassword;
private String mMarkList;
private String mBookmark;
private String mDescript;
private String mHostName;
private String mMarkGuid;
private String mCommand;
private String mContent;
private String mHtmlName;
private String mDirectory;
private String mFilePath;
private String mUserName;
private int mColumns;
private int mCells;
private String mMyDefine1;
private String mLocalFile;
private String mRemoteFile;
private String mLabelName;
private String mImageName;
private String mTableContent;
private String Sql;
private DBstep.iMsgServer2000 MsgObj;
private DBstep.iDBManager2000 DbaObj;
// ************* Bolb字段处理、公共函数、接收流、写回流代码 开始 *******************************
private void PutAtBlob(BLOB vField,int vSize) throws IOException
{
try
{
OutputStream outstream=vField.getBinaryOutputStream();
outstream.write(mFileBody,0, vSize);
outstream.close();
}
catch(SQLException e)
{
}
}
private void GetAtBlob(BLOB vField,int vSize) throws IOException
{
try
{
mFileBody = new byte[vSize];
InputStream instream=vField.getBinaryStream();
instream.read(mFileBody,0,vSize);
instream.close();
}
catch(SQLException e)
{
}
}
/**
* 功能或作用:格式化日期时间
* @param DateValue 输入日期或时间
* @param DateType 格式化 EEEE是星期, yyyy是年, MM是月, dd是日, HH是小时, mm是分钟, ss是秒
* @return 输出字符串
*/
public String FormatDate(String DateValue,String DateType)
{
String Result;
SimpleDateFormat formatter = new SimpleDateFormat(DateType);
try{
Date mDateTime = formatter.parse(DateValue);
Result = formatter.format(mDateTime);
}catch(Exception ex){
Result = ex.getMessage();
}
if (Result.equalsIgnoreCase("1900-01-01")){
Result = "";
}
return Result;
}
//取得客户端发来的数据包
private byte[] ReadPackage(HttpServletRequest request)
{
byte mStream[]=null;
int totalRead = 0;
int readBytes = 0;
int totalBytes = 0;
try
{
totalBytes = request.getContentLength();
mStream = new byte[totalBytes];
while(totalRead < totalBytes)
{
request.getInputStream();
readBytes = request.getInputStream().read(mStream, totalRead, totalBytes - totalRead);
totalRead += readBytes;
continue;
}
}
catch (Exception e)
{
System.out.println(e.toString());
}
return (mStream);
}
//发送处理后的数据包
private void SendPackage(HttpServletResponse response)
{
try
{
ServletOutputStream OutBinarry=response.getOutputStream() ;
OutBinarry.write(MsgObj.MsgVariant()) ;
OutBinarry.flush();
OutBinarry.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
// ************* Bolb字段处理、公共函数、接收流、写回流代码 结束 *******************************
// ************* 文档、模板管理代码 开始 *******************************
//调出文档,将文档内容保存在mFileBody里,以便进行打包
private boolean LoadFile()
{
boolean mResult = false;
String Sql = "SELECT FileBody,FileSize FROM Document_File WHERE RecordID='" + mRecordID + "'";
try {
if (DbaObj.OpenConnection()) {
try {
ResultSet result = DbaObj.ExecuteQuery(Sql);
if (result.next()) {
try {
mFileSize=result.getInt("FileSize");
GetAtBlob(((OracleResultSet)result).getBLOB("FileBody"),mFileSize);
mResult = true ;
}
catch (IOException ex) {
System.out.println(ex.toString());
}
}
result.close();
}
catch (SQLException e) {
System.out.println(e.getMessage());
mResult = false;
}
}
}
finally {
DbaObj.CloseConnection();
}
return (mResult);
}
//保存文档,如果文档存在,则覆盖,不存在,则添加
private boolean SaveFile()
{
boolean mResult = false;
int iFileId = -1;
String Sql = "SELECT * FROM Document_File WHERE RecordID='" + mRecordID + "'";
try{
if (DbaObj.OpenConnection()) {
try {
ResultSet result = DbaObj.ExecuteQuery(Sql);
if (result.next()) {
Sql="update Document_File set FileID=?,RecordID=?,FileName=?,FileType=?,FileSize=?,FileDate=?,FileBody=EMPTY_BLOB(),FilePath=?,UserName=?,Descript=? WHERE RecordID='" + mRecordID + "'";
iFileId=result.getInt("FileId");
}
else {
Sql="insert into Document_File (FileID,RecordID,FileName,FileType,FileSize,FileDate,FileBody,FilePath,UserName,Descript) values (?,?,?,?,?,?,EMPTY_BLOB(),?,?,? )";
iFileId=DbaObj.GetMaxID("Document_File","FileId");
}
result.close();
}
catch (SQLException e) {
System.out.println(e.toString());
mResult = false;
}
java.sql.PreparedStatement prestmt=null;
try {
prestmt =DbaObj.Conn.prepareStatement(Sql);
prestmt.setInt(1,iFileId);
prestmt.setString(2, mRecordID);
prestmt.setString(3, mFileName);
prestmt.setString(4, mFileType);
prestmt.setInt(5, mFileSize);
prestmt.setDate(6 ,DbaObj.GetDate());
prestmt.setString(7, mFilePath);
prestmt.setString(8, mUserName);
prestmt.setString(9, mDescript); //"通用版本"
DbaObj.Conn.setAutoCommit(true) ;
prestmt.execute();
DbaObj.Conn.commit();
prestmt.close();
Statement stmt=null;
DbaObj.Conn.setAutoCommit(false) ;
stmt = DbaObj.Conn.createStatement();
OracleResultSet update=(OracleResultSet)stmt.executeQuery("select FileBody from Document_File where Fileid=" + String.valueOf(iFileId)+ " for update");
if (update.next()){
try
{
PutAtBlob(((oracle.jdbc.OracleResultSet)update).getBLOB("FileBody"),mFileSize);
}
catch (IOException e) {
System.out.println(e.toString());
mResult = false;
}
}
update.close();
stmt.close();
DbaObj.Conn.commit();
mFileBody=null;
mResult=true;
}
catch (SQLException e) {
System.out.println(e.toString());
mResult = false;
}
}
}
finally {
DbaObj.CloseConnection();
}
return (mResult);
}
//调出模板文档,将模板文档内容保存在mFileBody里,以便进行打包
private boolean LoadTemplate()
{
boolean mResult = false;
String Sql = "SELECT FileBody,FileSize FROM Template_File WHERE RecordID='" + mTemplate + "'";
try {
if (DbaObj.OpenConnection()) {
try {
ResultSet result = DbaObj.ExecuteQuery(Sql);
if (result.next()) {
try {
mFileSize=result.getInt("FileSize");
GetAtBlob(((OracleResultSet)result).getBLOB("FileBody"),mFileSize);
mResult = true ;
}
catch (Exception ex) {
System.out.println(ex.toString());
}
}
result.close();
}
catch (SQLException e) {
System.out.println(e.getMessage());
mResult = false;
}
}
}
finally {
DbaObj.CloseConnection();
}
return (mResult);
}
//保存模板文档,如果模板文档存在,则覆盖,不存在,则添加
private boolean SaveTemplate()
{
boolean mResult = false;
String Sql = "SELECT * FROM Template_File WHERE RecordID='" + mTemplate + "'";
try {
if (DbaObj.OpenConnection()) {
try {
ResultSet result = DbaObj.ExecuteQuery(Sql);
if (result.next()) {
Sql="update Template_File set TemplateID=?,RecordID=?,FileName=?,FileType=?,FileSize=?,FileDate=?,FileBody=EMPTY_BLOB(),FilePath=?,UserName=?,Descript=? WHERE RecordID='" + mTemplate + "'";
mTemplateId=result.getInt("TemplateId");
}
else {
Sql="insert into Template_File (TemplateID,RecordID,FileName,FileType,FileSize,FileDate,FileBody,FilePath,UserName,Descript) values (?,?,?,?,?,?,EMPTY_BLOB(),?,?,? )";
mTemplateId=DbaObj.GetMaxID("Template_File","TemplateId");
}
result.close();
}
catch (SQLException e) {
System.out.println(e.toString());
mResult = false;
}
java.sql.PreparedStatement prestmt=null;
try {
prestmt =DbaObj.Conn.prepareStatement(Sql);
prestmt.setInt(1,mTemplateId);
prestmt.setString(2, mTemplate);
prestmt.setString(3, mFileName);
prestmt.setString(4, mFileType);
prestmt.setInt(5, mFileSize);
prestmt.setDate(6 ,DbaObj.GetDate());
prestmt.setString(7, mFilePath);
prestmt.setString(8, mUserName);
prestmt.setString(9, mDescript); //"通用版本"
DbaObj.Conn.setAutoCommit(true) ;
prestmt.execute();
DbaObj.Conn.commit();
prestmt.close();
Statement stmt=null;
DbaObj.Conn.setAutoCommit(false) ;
stmt = DbaObj.Conn.createStatement();
OracleResultSet update=(OracleResultSet)stmt.executeQuery("select FileBody from Template_File where TEMPLATEID=" + String.valueOf(mTemplateId)+ " for update");
if (update.next()){
try
{
mFileSize=mFileBody.length;
PutAtBlob(((oracle.jdbc.OracleResultSet)update).getBLOB("FileBody"),mFileSize);
}
catch (IOException e) {
System.out.println(e.toString());
mResult = false;
}
}
update.close();
stmt.close();
DbaObj.Conn.commit();
mFileBody=null;
mResult=true;
}
catch (SQLException e) {
System.out.println(e.toString());
mResult = false;
}
}
}
finally {
DbaObj.CloseConnection();
}
return (mResult);
}
// ************* 文档、模板管理代码 结束 *******************************
//调入选中版本,通过文件号调用mFileID,并把文件放入mFileBody里,以便进行打包
private boolean LoadVersion(String mFileID)
{
boolean mResult = false;
String Sql= "SELECT FileBody,FileSize FROM Version_File WHERE RecordID='" + mRecordID + "' and FileID=" + mFileID;
try {
if (DbaObj.OpenConnection()) {
try {
ResultSet result = DbaObj.ExecuteQuery(Sql);
if (result.next()) {
try {
mFileSize=result.getInt("FileSize");
GetAtBlob(((OracleResultSet)result).getBLOB("FileBody"),mFileSize);
mResult = true ;
}
catch (Exception ex) {
System.out.println(ex.toString());
}
}
result.close();
}
catch (SQLException e) {
System.out.println(e.getMessage());
mResult = false;
}
}
}
finally {
DbaObj.CloseConnection();
}
return (mResult);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -