asp mysql 读 存 改,在线编辑公文并保存到后台数据库-ASP教程,数据库相关

概述

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

引言

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

action="targeturl.asp"

enctype="multipart/form-data"

method="post">

这种方案在客户端和服务器端的使用都有很多限制。首先,我们必须使用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")

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

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

上述页面中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标准的语言中实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值