WEB环境中后台自动上传文件至数据库的实现

web|后台|上传|数据|数据库

概述
本文讲解了一个使用办公之星控件实现后台自动上传文件的例子,使用该方法没有选择文件步骤,可以在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标准的语言中实现。

时间: 2024-09-21 10:58:39

WEB环境中后台自动上传文件至数据库的实现的相关文章

ICON一款构建云计算环境中映像文件的软件工具

为了解决这些问题,Image Construction and Composition( 简称为 ICON) 应运而生.做为映像文件构建与编辑的工具,ICON 可以与云提供程序 (Cloud Provider) 集成,导入需要处理的影像文件,进行编辑,然后再同步到云环境中供http://www.aliyun.com/zixun/aggregation/6579.html">用户使用.通过本文,您可以了解 ICON 的安装和产品使用. Image Construction and Compo

云环境中的移动文件存储和时空数据分析关键技术研究

云环境中的移动文件存储和时空数据分析关键技术研究 国防科学技术大学  毛华坚 本文的研究工作和创新点如下:(1)提出了一种基于文件系统的异构云存储服务无缝统一访问方法Wukong.目前不同的云存储服务访问接口各异,由于缺乏无缝访问多种云存储服务的统一接口,时空数据应用不能够不加修改地直接访问和使用后端云存储数据.文件系统是被应用程序广泛支持的一种数据使用接口,以文件系统接口封装各种云存储服务可以保证应用程序对异构云存储服务的直接访问.本文首次提出了一种基于文件系统的异构云存储服务无缝统一访问方法

使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OSS(https://www.aliyun.com/product/oss) 4.HTTPS(http://baike.baidu.com/view/14121.htm) 阅读目录结构 引: 一.准备工作 二.整体功能结构 三.具体实现步骤 四.关键点和问题处理 五.延伸与扩展 六.总结与思考 引:

web services中关于服务器端连接access数据库的问题

问题描述 问大家个问题,我是用Tomcat,axis,eclispe来创建webservice的,具体过程是参照http://www.javaeye.com/topic/284387中所讲的步骤进行,在服务器端与access数据库进行连接.不过最后却得不到结果,也没报错.看了这个帖子http://topic.csdn.net/u/20081228/07/a8731f65-bc80-4da0-9fc2-682fc66a1a37.html有点犯迷糊,具体摘录如下:"--在做个基于Axis2的WebS

WEB环境下办公自动化文档修改痕迹保留的实现

web WEB环境下办公自动化文档修改痕迹保留的实现 一.痕迹保留的现状与思考 随着政府机关和许多企事业单位网络建设逐步完成,对于在如何利用网络,如何表现出网络的优势方面,用户最容易想到,同时也是最容易产生效果的应用,就是办公自动化系统(OA).在当前的软件开发实践中,B/S模式(浏览器/服务器模式)的开发可以采用三层结构,前端服务层.中间业务层.后台数据库.由于其扩展性好,数据安全性高,同时无须考虑客户端的兼容性,解决了C/S模式二层结构的诸多局限性,因而在办公自动化系统中得到了广泛的应用.

在Web页面中执行Windows程序

web|window|程序|页面|执行 现在许多公司都面临一个难题:如何在Web环境中执行存在的Windows应用程序.这里就介绍实现这个功能的技术,它争取对代 码做最小的改变,完成在Windows环境中应做的一切. 现存的Windows应用程序 这里想要在Web中执行的Windows例子程序是非常简单的,它是用VB编写的,其中有一个表单.运行时,在表单上显示雇员的信 息,这些信息来源于Access数据库的一个表.表单上设有First.Next.Previous 和 Last按钮,从而允许用户浏

在Web页面中执行Windows程序(转)

在Web页面中执行Windows程序 现在许多公司都面临一个难题:如何在Web环境中执行存在的Windows应用程序.这里就介绍实现这个功能的技术,它争取对代码做最小的改变,完成在Windows环境中应做的一切.现存的Windows应用程序 这里想要在Web中执行的Windows例子程序是非常简单的,它是用VB编写的,其中有一个表单.运行时,在表单上显示雇员的信息,这些信息来源于Access数据库的一个表.表单上设有First.Next.Previous 和 Last按钮,从而允许用户浏览记录.

关于图片或者文件在数据库的存储方式归纳

商品图片,用户上传的头像,其他方面的图片.目前业界存储图片有两种做法: 1.  把图片直接以二进制形式存储在数据库中 一般数据库提供一个二进制字段来存储二进制数据.比如mysql中有个blob字段.oracle数据库中是blob或bfile类型   2.  图片存储在磁盘上,数据库字段中保存的是图片的路径.   一.图片以二进制形式直接存储在数据库中   第一种存储实现(php语言): 大体思路: 1.将读取到的图片用php程序转化成二进制形式.再结合insert into 语句插入数据表中的b

javaweb-springmvc项目中springmvc.xml文件配置错误?

问题描述 springmvc项目中springmvc.xml文件配置错误? org.springframework.beans.factory. BeanCreationException: Error creating bean with name 'houseChangeInfoController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.facto