|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。背景|数据|数据库|在线在线编纂公函并保留到背景数据库
--------------------------------------------------------------------------------
http://www.standsoft.com(2004.1.14)文章智岛软件
在线演示http://www.oapro.com/ostarocx/sample/savefilepro/default.asp
源代码http://www.oapro.com/ostarocx/download/OStarOCX_savefile.rar
概述
本文解说了一个利用办公之星控件完成在线编纂文件并保留到背景数据库的例子,利用该办法没有选择文件步骤,能够在WEB情况下完成相似单机情况下点击保留文件的效果。
弁言
为了在HTML网页中取得上传功效,在客户端我们可使用以下格局的FORM:
<FORMNAME="myForm"
ACTION="TargetURL.asp"
ENCTYPE="multipart/form-data"
METHOD="post">
<INPUTTYPE="file"NAME="myFile">
<INPUTTYPE="submit"VALUE="UploadFile">
</FORM>
这类计划在客户端和服务器真个利用都有良多限定。起首,我们必需利用POST办法,由于GET办法没法处置如许的表双数据。而且,没有甚么办法能够在不利用表单的情形下激发一个POST举措。把数据发送给表单处置程序后,扫瞄器将会把处置程序作为新页面加载,然后利用者会看到一个不讨人喜好的页面转换历程。
办公之星控件中的上传计划
必要依照以下步骤操纵:
客户端:
将办公之星控件所编纂的文档保留至当地
使用HTTP协定将保留的一时文档发送给Web服务器
服务器端:
从Request工具中读出上传的二进制文档
读出二进制数据而且存储到数据库的BLOB型字段中。
使用办公之星控件能够在WEB情况下完成和WORD功效相称的图文混排和字处置功效,但怎样将所编纂的文档保留至服务器端?上述的计划仿佛没有甚么新器材。依照媒介中的申明,file控件的value值为只读,必定存在选择文档在手动点击上传按钮的历程。是如许吗?先先容二个办公之星控件接口办法:
1.SaveToTempFile(strfilename)
将以后用办公之星控件编纂的文档保留至当地构成一个一时文件,参数filename为一时文件的文件称号。该办法会前往一个参数,这个参数暗示一时文件的相对路径。示例:SaveToTempFile("abc.ost")
2.UpLoadFile(strfilepath,stroperatorfile)
将当地指定文件上传至服务器端,参数filepath为当地待上传文件的相对路径,operatorfile为服务器端用来吸收上传文件流的文件称号。该办法会前往一个参数,提醒操纵过程当中是不是乐成。示例:UpLoadFile("c:abc.ost","http://www.oapro.com/save.asp")
看到这里,信任您已分明了,办公之星控件已供应接口办法,将指定文件主动上传。上面给出客户端完全的代码:
<scriptlanguage="vbscript">
PublicSubmnuFileSave_click()
dimstr,strRet
天生一时文件
str=OStar.SaveToTempFile("abc.ost")
将一时文件上传
strRet=OStar.UpLoadFile(str,"http://www.oapro.com/save.asp")
上传乐成与否提醒
alert(strRet)
EndSub
</script>
上述页面中OStar为办公之星控件在页面中的操纵工具称号。以下代码为服务器端怎样处置上传文件并保留至数据库:
<%
界说变量和工具
dimsql
dimrs
dimUpFile
dimconn
dimconnstr
dimdb
保留上传文件的数据库称号
db="db.mdb"
获得上传的二进制数据
UpFile=Request.BinaryRead(Request.TotalBytes)
创建数据库毗连
Setconn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(""&db&"")
conn.Openconnstr
sql="selectUpFilefromOStarRepTemplatewhere(idisnull)"
rs.opensql,conn,1,3
rs.addnew
增加上传的二进制内容进数据库
rs("UpFile").AppendChunkUpFile
rs.update
烧毁数据库毗连工具
rs.close
setrs=nothing
conn.close
setconn=nothing
前往存储信息
Response.Write"Uploadsuccessful!"
%>
以上服务器端代码并未思索是不是第一次保留,假如是的话,那末在数据库中新建一个纪录保留上传的文件,假如不是第一次保留,那末应当是修正之前保留的纪录。
利用该办法的好处
不引发页面转换。
不必要公用组件。
这段程序是纯剧本写成的,能够很简单的拔出到其他代码中,而不必要任何HTML工具的共同。还能够把这个逻辑在任何撑持COM尺度的言语中完成。
</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|