用ASP和VBScript上载文件(一)

2016-01-29 19:26 62 1 收藏

用ASP和VBScript上载文件(一),用ASP和VBScript上载文件(一)

【 tulaoshi.com - ASP 】

      
  青苹果电脑工作室
    从浏览器上载文件是从客户机向服务器传递文件的一个简易方法。从第三代浏览器Netscape和 Microsoft起,多数浏览器都可以向服务器上载文件,而不需要向用户提供特殊的访问方式或软件。
  
  一些ASP组件是为文件上载而设计的,例如:
  Posting Acceptor
  ( Microsoft SiteServer的一部分),
  AspSmartUpload(Advantys),
  AspUpload (PersistsSoftware),
  SA-FileUpSoftware Artisants)
  
    本文的开始将告诉你关于创建这类组件的信息,而这些组件通常使用VB、C++或Java。
  
    这些组件的问题在于它们是第三方产品而非标准ASP的一部分。作为第三方组件,必须在服务器上进行安装。这就意味着必须在服务器上复制DLL并注册。大多数的主机系统不允许在他们的服务器上进行这样的设置,因为有可能发生配置问题(尤其是虚拟主机)。第二个缺点是它们大部分不是免费的,不提供源代码,也就不能根据需要进行定制。
  
    因此我需要编写VBScript代码来解决文件上载的问题。这不是一个必然的选择,因为VBScript是一种脚本语言,只能使用variants数据类型,并且不能提供许多管理二进制数据和字节数组的内置函数。
  
    要理解上载的过程,首先要知道数据用HTTP协议从浏览器发送到服务器的方式。这就意味着要理解“ multipart/form-data” (多部分/格式-数据)的表单提交。
  
  上载表单
  
    通常情况下,使用HTML表单从浏览器向服务器传递数据。这个表单中可能包含文本域、检验框、按钮以及上载文件的文件类型控制。使用者用自己的数据填充并将这个表提交给服务器。
  
    表单元素中的 enctype 属性规定了传递给服务器的表数据集编码的内容类型。enctype 属性的默认值是“application/x-www-form-urlencoded”,但当向服务器传送大量文本、包含非ASCII字符或二进制数的数据时,这个默认类型就不能胜任了。这时,文件上载提交表单时应使用“multipart/form-data”内容类型。
  
    一个“multipart/form-data”信息包含一系列部件,每个部件都可能包含:
  一个Content-Disposition(内容-处理)头,其值为"form-data" ;一个规定控制名的name(名称)属性。
  
    对于一个文件类型控制,一个部件可能包含更多信息:
  在客户机上规定原始路径和文件名的filename(文件名)属性;所发送的二进制数据控制的Content-Type (内容-类型)头。
  
    在这些头的后面跟随着控制的二进制或文本内容。
  
    以下例子说明“multipart/form-data”的编码,客户机的浏览器应有这个表单:
  
  如果这个表单被提交,在服务器上可读到这些请求:
  
  -----------------------------7cf87224d2020a
  Content-Disposition: form-data; name="email"
  PhCollignon@email.com
  -----------------------------7cf87224d2020a
  Content-Disposition: form-data; name="blob"; filename="c:image.gif"
  Content-Type: image/pjpeg
  
  -----------------------------7cf87224d2020a
  Content-Disposition: form-data; name="Enter"
  Submit Query
  -----------------------------7cf87224d2020a--
  
    当那个内容作为响应被传送回客户机时就会被显示出来。应该用Request.binaryRead 和Response.binaryWrite 方法读和写二进制数据。
  
  〈%
  Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
  %〉
  
  可以看到响应的各部分用分界线来划分:
  -----------------------------7cf87224d2020a
  最后一个分界线后面跟随的是’ -- ’ 。
  
    每一个控制都有一个Content-Disposition 。name属性识别由HTML表发送的控制(email、blob和Enter)。 对于一个文件类型控制(blob),
  文件名也是Content-Disposition 头的一部分,Content-Type 头给出二进制 数据的内容类型。
  
  上载脚本
  
    上面所有内容都必须经过分解。在VB 或 C++中, 这非常

来源:https://www.tulaoshi.com/n/20160129/1509391.html

延伸阅读
各位大侠可能会对263电子邮箱中的"上传附件"功能有印象,就是:在浏览 器中点击"浏览",弹出一个对话框,选中文件后,单击"确定",文件就被上传到了服务器端。 因为需要,就到网上找了几个控件,如SmartUpload等,但都觉得不好用,或者 说是不合用,决定自己做一个。近日看到网上也有人提问怎么上载文件,于...
标签: Java JAVA基础
  现在JSP被越来越多的人应用在后台程序的开发及动态网页的制作上了,今天就来介绍一下如何用JSP来实现文件的上载。 一、RFC1867规范 在过去的Html中,表单不能实现文件的上传,这多少限制了一些网页的功能。RFC1867规范(即Html中实现基于表单的文件上传)对表单作出了扩展,增加了一个表单元素...
标签: PHP
       用PHP3实现文件上载   计算机世界日报       PHP3是一种非常强大的CGI脚本语言,就其语言特点基本上源于C,就其实现方式而言更象PERL,而其对数据库的内在支持更使之成为ASP的强大对手。       首先在前台必须有一个界面    &...
标签: ASP
       花君      下面是用ASP+来纺写的上载例子!!在ASP中我们就才上载有许多组件:      <html>      <script language="VB" runat=server>   'VB代码   Sub UploadBtn_Click(Sender as Object, E as EventArg...
标签: ASP
  最近做在做项目,涉及到文件上载的问题,找来资料研究了一下。当用户需要将文件传输到服务器上时,常用方法是使用FTP方式,用FTP的话虽然传输稳定,但安全性是个严重的问题,而且FTP服务器读用户库获取权限,这样对于用户使用来说还是不太方便。如果我们能把文件上载功能与Web集成,使用户仅用Web浏览器就能完成上载任务,这对于他...

经验教程

263

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部