在线编辑公文并保存到后台数据库

farfly 2004-02-04 03:12:12


[IMG]Http://www.hytian.com/ocx/NetOStar.jpg[/IMG]

在线演示http://www.oapro.com/ostarocx/sample/savefilepro/default.asp
源代码http://www.oapro.com/ostarocx/download/OStarOCX_savefile.rar

概述
本文讲解了一个使用办公之星控件实现在线编辑文件并保存到后台数据库的例子,使用该方法没有选择文件步骤,可以在WEB环境下实现类似单机环境下点击保存文件的效果。

引言

为了在HTML网页中获得上传功能,在客户端我们可以使用如下格式的FORM:

<FORM NAME="myForm"
ACTION="TargetURL.asp"
ENCTYPE="multipart/form-data"
METHOD="post">
<INPUT TYPE="file" NAME="myFile">
<INPUT TYPE="submit" VALUE="Upload File">
</FORM>

这种方案在客户端和服务器端的使用都有很多限制。首先,我们必须使用POST方法,因为GET方法无法处理这样的表单数据。并且,没有什么方法可以在不使用表单的情况下引发一个POST动作。把数据发送给表单处理程序后,浏览器将会把处理程序作为新页面加载,然后使用者会看到一个不讨人喜欢的页面转换过程。

办公之星控件中的上传方案

需要按照如下步骤操作:

客户端:

将办公之星控件所编辑的文档保存至本地
利用HTTP协议将保存的临时文档发送给Web服务器

服务器端:

从Request对象中读出上传的二进制文档
读出二进制数据并且存储到数据库的BLOB型字段中。

利用办公之星控件可以在WEB环境下实现和WORD功能相当的图文混排以及字处理功能,但如何将所编辑的文档保存至服务器端?上述的方案似乎没有什么新东西。按照前言中的说明,file控件的value值为只读,一定存在选择文档在手动点击上传按钮的过程。是这样吗?先介绍二个办公之星控件接口方法:

1. SaveToTempFile(str filename)

将当前用办公之星控件编辑的文档保存至本地形成一个临时文件,参数filename为临时文件的文件名称。该方法会返回一个参数,这个参数表示临时文件的绝对路径。示例: SaveToTempFile("abc.ost")

2. UpLoadFile(str filepath,str operatorfile)

将本地指定文件上传至服务器端,参数filepath为本地待上传文件的绝对路径,operatorfile为服务器端用来接收上传文件流的文件名称。该方法会返回一个参数,提示操作过程中是否成功。示例:UpLoadFile("c:\abc.ost","http://www.oapro.com/save.asp")

看到这里,相信您已经明白了,办公之星控件已提供接口方法,将指定文件自动上传。下面给出客户端完整的代码:

<script language="vbscript">
Public Sub mnuFileSave_click()
dim str,strRet

'生成临时文件
str=OStar.SaveToTempFile("abc.ost")

'将临时文件上传
strRet=OStar.UpLoadFile(str,"http://www.oapro.com/save.asp")

'上传成功与否提示
alert(strRet)
End Sub
</script>

上述页面中OStar为办公之星控件在页面中的操作对象名称。以下代码为服务器端如何处理上传文件并保存至数据库:

<%
' 定义变量和对象
dim sql
dim rs
dim UpFile
dim conn
dim connstr
dim db

'保存上传文件的数据库名称
db="db.mdb"

'取得上传的二进制数据
UpFile=Request.BinaryRead(Request.TotalBytes)

'建立数据库连接
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr
sql="select UpFile from OStarRepTemplate where (id is null)"
rs.open sql,conn,1,3
rs.addnew

'添加上传的二进制内容入数据库
rs("UpFile").AppendChunk UpFile
rs.update

' 销毁数据库连接对象
rs.close
set rs=nothing
conn.close
set conn=nothing

' 返回存储信息
Response.Write "Upload successful!"
%>

以上服务器端代码并未考虑是否第一次保存,如果是的话,那么在数据库中新建一个记录保存上传的文件,如果不是第一次保存,那么应该是修改以前保存的记录。

使用该方法的益处

不引起页面转换。
不需要专用组件。

这段程序是纯脚本写成的,可以很容易的插入到其他代码中,而不需要任何HTML对象的配合。还可以把这个逻辑在任何支持COM标准的语言中实现。
...全文
37 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
andraw2002 2004-04-02
  • 打赏
  • 举报
回复
如果不是第一次保存,那么应该是修改以前保存的记录
===========================================

那save.asp页中,从哪里取得我要修改的记录的ID号呢??



有点意思,如果在网吧里能进行在线编辑吗??一般情况下,网吧里的机子是不允许安装、新建任何东西的??有想过吗??
qhf503 2004-04-02
  • 打赏
  • 举报
回复
如果能新建文件就好了

是不是我不会操作????????????
NTKO OFFICE文档控件,支持文档电子签名[数字签名],支持PHP,ASP,JSP,C#,VB.NET,DOMINO等各种web编程语言和服务器的在线编辑痕迹保留手写签名电子印章全屏批注控件。 NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制等办公自动化系统必备的功能。是OA系统开发的最佳选择组件!!卓越的性能,低廉的价格,简洁高效的编程接口,让您以最低的开发成本,轻松创建极具特色的办公自动化解决方案!3.0版本新增:新增了文档电子签名【数字签名】的功能。同时简化了一些常用功能的函数和方法。NTKO OFFICE文档控件3.0版本的数字签名功能基于国际标准开发,同时符合国家即将实施生效的《电子签名法》。使用电子签名【数字签名】,可以验证对文档内容,格式等的任何改动。同时支持联合签名,证书吊销列表等功能。另外,NTKO OFFICE文档控件3.0版本还支持数字签名的信任程度显示。http://www.ntko.com --联机演示,OA系统开发的最佳选择组件!详细功能列表(带★为特色功能) ★ 所见即所得的同时支持Word和Excel的全文批注,全屏批注,圈阅批注。并可定位全屏批注及印章。★ 全部功能基于标准协议而非自定义协议。★ 和其他厂家宣称的不同,我们真正是采用RFC标准协议而非任何自定义协议。无需安装后台组件。不存在技术风险。选择我们就是选择标准。★ 支持强制痕迹保留 可以通过对控件编程,让用户只能在痕迹保留状态下工作;强制用户保留一切编辑痕迹。支持不同痕迹分色显示。并且可以通过编程获取一切痕迹信息。★ 首创真正支持OFFICE菜单,支持状态栏。★ 更多的印章控制功能。不仅可将印章至于当前位置,更可以按照页面,页边距等方式定位。也可以设置印章至于文字上方还是下方。★ 对标准协议的支持不仅可以减少合作伙伴的技术风险,更可以充分利用已有经验。对原有系统的影响非常小。也不需要预先定义的数据库格式。能够已最快的速度和现有系统融合。★ 广泛的操作系统,Web服务器和编程语言支持 后台支持Windows,Linux,Unix等各种操作系统;支持IIS,Domino,Websphere,Apache等所有后台服务器类型和JSP,ASP,PHP,PERL等编程语言。★ 采用我们独创的“智能提交”技术,基于国际标准提交数据而非自定义协议,让您在提交编辑文档的同时,提交表单的其它数据,以及表单中其它的文件上传。这可以让您更加快速的集成现有的应用程序,或者创建新的应用程序,并充分利用已有经验。★ 支持所有的Office菜单 完全符合用户习惯,用户操作更加轻松,尤其是复杂的表格操作,和在Office中操作完全一致,大大节约开发成本;而且菜单项目可以通过javascript来控制允许或者禁止。 ★ 支持发布为HTML 发布为HTML的功能,可以让您将在线编辑的文档(WORD,EXCEL)以HTML的方式发布到WEB服务器。让没有安装控件的用户也能够方便的查看文档。 ★ 支持将HTML及其相关文件直接发布到DOMINO文档可以将HTML文件及其相关文件直接作为附件发布到DOMINO的文档中。 ★ 支持手写签名和加密的电子印章 支持使用我们的工具制作加密的电子印章,可将印章放入U盘等硬件设备。高强度的单向加密算法保证只有拥有正确的口令才能够恢复出印章的数据。 ★ 无需后台配置,即可支持Lotus Domino 可与Lotus Domino服务器天然集成。Domino服务器无需安装Java,或其它任何组件。降低系统部署的难度。同时能够将已有的复杂应用迅速转换到使用控件的应用。降低开发成本,节约开发时间。 ★ 基于标准协议,无任何自定义数据格式,通用性好 基于标准协议的开发,使得合作伙伴无须担心技术的进步带来后续维护和开发风险。 ★ 支持从本地或服务器URL获取加密的电子印章支持从本地和服务器将电子印章加入到Office文档。 ★ 支持从服务器URL或本地直接插入透明浮动图片到Word,Excel文档 新增加的AddPicFromURL和AddPicFromLocal函数可以直接从URL或本地插入透明的浮动图片到Office文档 ★ 支持将手工绘制的图片作为透明浮动的图片增加到Word,Excel文档 新增加的DoHandDraw函数可以将您不期而至的灵感迅速转化成图片放到Word或者Excel文档中。 ★ 全面支持Office2000的打印预览 增强了对Office2000的打印预览支持,支持全部Office2000系统的打印预览。另外支持OfficeXP和Office2003中Excel的打印预
iWebOffice2003是一个基于Web的文档处理中间件 =============================================================================== iWebOffice系列文档控件,是江西金格网络科技有限责任公司经过两年的完全自主开发设计,拥有自主知识产权的中间件软件,于2003年3月取得了国家软件著作权保护,于2003年12月取得了江西省软件产品登记证,同年被列为创新基金项目,该软件完全按照办公软件对公文文档需求标准设计,全国率先提出并实现文档线编辑的梦想和构架,产品开发完成后,已经得到了广大客户的认可,成为许多软件开发公司开发(OA)办公软件的首选标准控件。我们始终专注该产品的研发,引领这一领域的技术发展方向。 iWebOffice系列文档控件,能够在浏览器窗口中直接编辑Word、Excel、PowerPoint等Office文档并保存到Web服务器上。实现文档和电子表格和数据库的统一管理。同时支持痕迹保留,手写签名,电子印章等办公自动化系统必备的功能。是OA系统开发的标准控件,是保护您投资的最佳选择!控件采用标准HTTP协议,支持任意后台Web服务器(IIS,WebLogic,WebSphere,Apache,Tomcat等),任意后台操作系统(Windows 2000/2003/XP,Linux, Unix等),以及任意后台编程语言(Asp, Jsp, Php,VB.NET,C#.NET等)和任意Web应用服务器体系结构(J2ee, .NET等)。卓越的性能,标准高效的编程接口,让您以最低的开发成本,轻松创建极具特色的办公自动化解决方案! 目前政府信息化,办公自动化正如火如荼的进行,而Microsoft Office是办公文档中用的最普遍的一种文档编辑工具,其格式是最普遍公文载体,在办公自动化系统中,如何与Microsoft Office文档结合,是很多软件开发公司一直在摸索的问题,我们根据这种情况,采用自定义数据结构协议,自行研制开发了基于Web方式的Microsoft Office网络文档中间件管理方案。这个方案是整个办公系统中的文档处理部分,完全与Microsoft Office兼容,软件开发公司可以利用该方案,与自己研制的办公自动化系统相结合,开发出真正符合办公自动化需求的软件。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧