XML技术上传文件
来源:互联网 发布:pid算法控制电机转速 编辑:程序博客网 时间:2024/04/27 11:07
| |
日期:2003年11月15日 作者:mbsky 人气: 159 查看:[大字体 中字体 小字体] | |
本文讲解了一个使用XML技术上传文件的例子,使用该方法没有传统方法中的种种限制。 这个例子讲述了如何使用MSXML3.0和ADO Stream对象来实现这种新的上传方法。好处有很多,比如,不需要专用的上传组件。
<FORM NAME="myForm" 这种方案在客户端和服务器端的使用都有很多限制。首先,我们必须使用POST方法,因为GET方法无法处理这样的表单数据。并且,没有什么方法可以在不使用表单的情况下引发一个POST动作。把数据发送给表单处理程序后,浏览器将会把处理程序作为新页面加载,然后使用者会看到一个不讨人喜欢的页面转换过程。 新的上传方案 需要按照如下步骤操作。 使用MSXML 3.0创建一个XML文档 服务器端: 对XML的思考 XML格式支持很多数据类型,比如numeric, float, character等等。很多作者将XML定义为ASCII格式,但是我们不能忽视,XML技术还可以使用“bin.base64”数据类型来描述二进制信息。这个特性在MS XML3.0解析器重得到完全的支持,但是目前还需要一些特别设置。该对象提供一些可以对二进制数据进行完全控制的属性: obj_node.dataType - 该可读写的属性定义了特定节点的数据类型。MSXML解析器支持更多的数据类型(参见MSDN:http://msdn.microsoft.com/library/psdk/xmlsdk/xmls3z1v.htm) obj_node.nodeTypedValue - 该可读写属性包含了按照制定类型表示的指定节点的数据。 我们可以使用XMLHttpRequest对象和POST方法发送一个XML文档给Web服务器。该对象为HTTP服务器提供了客户端协议支持,允许在Web服务器上发送和接受MS XMLDOM对象。XMLHttpRequest是Internet Explorer 5内置的COM对象(不需要定制安装),并且发送完毕后无需转换页面。
我们可以在客户端创建一个包含一个或者多个二进制节点的XML文档。我们还必须把文件内容填入节点中。但是很不幸,脚本语言不能访问本地文件系统,并且Scripting.FileSystem对象(是Win32系统的内置对象)到目前为止还不能访问二进制文件。这是设计上的限制。所以我们需要另外找一个可以提供对本地二进制文件的访问的COM对象。 ADO Stream对象(MDAC 2.5中的组件)提供了读、写和管理二进制流数据的手段。字节流的内容可以是文本,或者二进制数据,并且没有容量上的限制。在ADO 2.5中,Microsoft对Stream对象的介绍不属于ADO对象结构的任何一层,所以,我们无需捆绑即可使用该对象。 本文中使用Stream对象来访问文件内容,再把内容存入XML节点。
以下示例代码使用Stream和MSXML对象完成文件上传动作。 <HTML> <SCRIPT LANGUAGE=javascript> // 上传函数 // 创建包含默认头信息和根节点的 XML文档 // 创建一个新节点,设置其为二进制数据节点 // 可以创建多个二进制节点,一次上传多个文件 // 把XML文档发送到Web服务器
以下代码使用相同的对象提供服务器端的上传处理功能。 <%@ LANGUAGE=VBScript%> ' 定义变量和对象。 ' 创建 Stream 对象 ' 打开Stream对象,把数据存入其中 ' 销毁对象 也可以使用Stream对象把数据放到数据库的BLOB型字段中。 使用该方法的益处 不引起页面转换。 系统安全考虑 该方法只能使用于内部网络,因为它需要IE5的安全级别设置为“低”。必须: 允许脚本和ActiveX对象。该设置允许浏览器执行类似 "myobj = new activexobject(...)"的 JScript语句; |
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件
- XML技术上传文件XML技术
- XML技术上传文件-转贴
- 文件上传用XML
- 使用XML上传文件
- XML上传文件例子
- XML上传文件例子
- xml文件上传数据库
- Struts上传文件技术
- R.Koo 改良后的分页类(主要是显示属性)
- 风声无组件上传类
- ASP 生成 XBM 图可用作验证码
- 关于SELECT的无限级联(省|市|县|乡|村|...)
- 如何把ASP编写成DLL
- XML技术上传文件
- 人民幣小寫金額轉換為大寫函數
- WIN下编程须知
- ShadowStar CodeFast Source Code 我的生日礼物
- 17种正则表达式
- 一些实用的 JavaScript 代码
- 盗版用户误装sp2后恢复正常技巧
- 女人与男人不同
- windows问与答