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); }