importPackage(Packages.DBstep);
var mFileBody;
MsgObj = new iMsgServer2000(); // 创建信息包对象 mOption = "";
function ExecuteRun(request, response) {
	mRecordID = "";
	mTemplate = "";
	mFileBody = null;
	mFileName = "";
	mFileType = "";
	mFileSize = 0;
	mFileID = "";
	mDateTime = "";
	mMarkName = "";
	mPassword = "";
	mMarkList = "";
	mBookmark = "";
	mMarkGuid = "";
	mDescript = "";
	mCommand = "";
	mContent = "";
	mLabelName = "";
	mImageName = "";
	mTableContent = "";
	mMyDefine1 = "";
	mOfficePrints = "0";
	mFilePath = request.getSession().getServletContext().getRealPath("");

	MsgObj.Load(request); // 8.1.0.2版后台类新增解析接口,可支持UTF-8编码自适应功能

	if (MsgObj.GetMsgByName("DBSTEP").equalsIgnoreCase("DBSTEP")) { // 判断是否是合法的信息包,或者数据包信息是否完整
		mOption = MsgObj.GetMsgByName("OPTION"); // 取得操作信息
		mUserName = MsgObj.GetMsgByName("USERNAME"); // 取得系统用户
		println("OPTION:" + mOption); // 打印出调试信息
		if (mOption.equalsIgnoreCase("LOADFILE")) { // 下面的代码为打开服务器数据库里的文件
			mRecordID = MsgObj.GetMsgByName("RECORDID"); // 取得文档编号
			mFileName = MsgObj.GetMsgByName("FILENAME"); // 取得文档名称
			mFileType = MsgObj.GetMsgByName("FILETYPE"); // 取得文档类型
			MsgObj.MsgTextClear(); // 清除文本信息
			// if (MsgObj.MsgFileLoad(mFilePath+"\\"+mFileName)) //从文件夹调入文档
			if (LoadFile()) { // 从数据库调入文档
				MsgObj.MsgFileBody(mFileBody); // 将文件信息打包
				MsgObj.SetMsgByName("STATUS", "打开成功!"); // 设置状态信息
				MsgObj.MsgError(""); // 清除错误信息
			} else {
				MsgObj.MsgError("打开失败!"); // 设置错误信息
			}
		} else if (mOption.equalsIgnoreCase("SAVEFILE")) { // 下面的代码为保存文件在服务器的数据库里
			mRecordID = MsgObj.GetMsgByName("RECORDID"); // 取得文档编号
			mFileName = MsgObj.GetMsgByName("FILENAME"); // 取得文档名称
			mFileType = MsgObj.GetMsgByName("FILETYPE"); // 取得文档类型
			mUserName = mUserName; // 取得保存用户名称
			mDescript = "通用版本"; // 版本说明
			mFileSize = MsgObj.MsgFileSize(); // 取得文档大小
			// mFileDate = DbaObj.GetDateTime(); //取得文档时间
			mFileBody = MsgObj.MsgFileBody(); // 取得文档内容
			var isEmpty = MsgObj.GetMsgByName("EMPTY"); // 是否是空内容文档的标识
			if (isEmpty.equalsIgnoreCase("TRUE")) {
				// 此时接收的文档中内容是空白的,请用日志记录保存时间、保存用户、记录编号等信息,用于将来发现文档内容丢失时排查用。
				System.out.println("注意:本次保存的是空白内容的文档。RECORDID:" + mRecordID);
			}

			MsgObj.MsgTextClear(); // 清除文本信息
			if (MsgObj.MsgFileSave(mFilePath + "\\" + mFileName)) // 保存文档内容到文件夹中
				if (SaveFile()) { // 保存文档内容到数据库中
					MsgObj.SetMsgByName("STATUS", "保存成功!"); // 设置状态信息
					MsgObj.MsgError(""); // 清除错误信息
				} else {
					MsgObj.MsgError("保存失败!"); // 设置错误信息
				}
			MsgObj.MsgFileClear(); // 清除文档内容
		}else if (mOption.equalsIgnoreCase("LOADBOOKMARKS")) {                 // 下面的代码为取得文档标签
            mRecordID = MsgObj.GetMsgByName("RECORDID");                        // 取得文档编号
            mTemplate = MsgObj.GetMsgByName("TEMPLATE");                        // 取得模板编号
            mFileName = MsgObj.GetMsgByName("FILENAME");                        // 取得文档名称
            mFileType = MsgObj.GetMsgByName("FILETYPE");                        // 取得文档类型
            MsgObj.MsgTextClear();
            if (LoadBookMarks()) {
              MsgObj.MsgError("");                                              // 清除错误信息
            }
            else {
              MsgObj.MsgError("装入标签信息失败!");                             // 设置错误信息
            }
          }
	}
	MsgObj.Send(response);
	var os = response.getOutputStream();
	os.flush();
	os.close();

}
function LoadFile() {
	try {
		var f = new java.io.File('C:\\Users\\gaoyang\\Desktop\\haha.doc');
		mFileBody = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, f
				.length());
		var fis = new java.io.FileInputStream(f);
		fis.read(mFileBody);
		fis.close();
		return true;
	} catch (e) {
		println(e.message);
		return false;
	}
}

function SaveFile(){
	try{
  	  FileOutputStream fos=new FileOutputStream(new File("C:\\Users\\gaoyang\\Desktop\\",mFileName));
  	  fos.write(mFileBody,0,mFileSize);
  	  fos.close();
  	  mResult=true;
    }catch(Exception e){
  	  mResult=false;
    }
    finally{
  	  
    }
    return (mResult);
}

function LoadBookMarks(){
	var mResult = false;
	var mBookMarkName = "A";
	var mBookMarkValue = "1234";
	MsgObj.SetMsgByName(mBookMarkName, mBookMarkValue);
	mResult = true;
    return (mResult);
}