当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ASP和VBScript上载文件(二)

ASP
基于ASP的收发文管理系统的设计与实现
用ASP制作张扬个性的调查系统
使用XMLHTTP制作域名查询系统
Delphi编写组件封装asp代码的基本步骤
采用XMLHTTP编写一个天气预报的程序
菜鸟详听ASP中也能解压缩rar文件
用Asp+XmlHttp实现RssReader功能
纯ASP代码之公历转农历实现(含属相)
纯ASP代码之公历转农历实现(含属相)--例子代码
多个域名后缀同时查询的域名查询系统
实现有管理功能的ASP留言板
Jmail发信的实例,模块化随时调用
纯ASP(VBscript)写的全球IP地址搜索程序
数字和字母组合并生成图片的验证码祥解
金额大小写转换的asp完全无错版本
用ASP学做一个在线调查
利用客户端js实现汉字简体繁体转换
ASP操作XML文件的完整实例
浅谈TeeChart组件在ASP中的应用
在VB中利用Word宏命令开发ASP组件

用ASP和VBScript上载文件(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 236 ::
收藏到网摘: n/a

       青苹果电脑工作室·Yesky
  
  上载脚本的使用
  
    下面是开发的上载脚本的应用范例。本文的下载文件提供例子中的文件和代码。将压缩文件释放到一个路径下,为你的网络服务器配置一个虚拟路径。可以在浏览器中测试和启动uploadForm.html。
  
  调用脚本
  
    下面是调用上载BuildUploadRequest 方法的途径。首先调用一个全程dictionary:UploadRequest。然后调用BuilUploadRequest方法,然后在自变量中传送到请求原始二进制数据。
  
  byteCount = Request.TotalBytes
  RequestBin = Request.BinaryRead(byteCount)
  Dim UploadRequest
  Set UploadRequest = CreateObject("Scripting.Dictionary")
  BuildUploadRequest RequestBin
  
    数据被分解并存储在dictionary对象中,并用Item() 方法恢复。这些item 数据可以保存在VBScript 变量中,并且可以在代码的任何地方使用。数据可以作为响应传送回客户机,或用在ASP代码中,或写进文件中及放入数据库中。
  
  取回数据
  
    UploadRequest 对象的数据可用Item("key") 函数进行存取。现在来考虑一下这样的情况:要存取一个 email控制的值。可以这样做:
  
  email = UploadRequest.Item("email").Item("Value")
  
    因为这是一个文本类控制,内容是一个字符串,这个字符串可以同任何其它VBScript 字符串一样使用。 对于二进制数据,可以用相同方法恢复内容:
  
  picture = UploadRequest.Item("blob").Item("Value")
  
    也可以存取其它信息,如文件名和content-type。他们是文本类控制。
  
  contentType = UploadRequest.Item("blob").Item("ContentType")
  filepathname = UploadRequest.Item("blob").Item("FileName")
  
  在 VBScript 代码中使用数据
  
    上载的数据可以同其它变量一样在VBScript 代码中使用。比如说,它们可以作为响应发送回客户机。
  
  Your email is : 〈%=email%〉
  File name of you picture is 〈%=filepathname%〉
  File type of your picture is 〈%=contentType%〉
  
    二进制数据也可以发送回客户机。必须设置一个content-type,可以用BinaryWrite 方法写二进制数据。
  
  Response.ContentType = contentType Response.BinaryWrite picture
  
  向文件中写入上载数据
  
    在文件类控制的情况下,目的通常是将二进制数据存入某个文件或数据库域,而不是将它们传送回客户机。这个目的是上载文件的固有特点。使用FileSystem对象将上载文件存入服务器的文件系统中。
  
    首先创建FileSystem对象:
  
  ’Create FileSytemObject Component Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
  
    用FileSystem对象在路径中创建一个文件。路径可以是绝对的,直接指向文件系统(如c:\temp)。也可以是相对的,到网络服务器定义的一个虚拟路径下。用mappath方法和PATH_INFO服务器变量将虚拟路径影射到绝对路径。
  
    Write方法需要一个双字节字符串作为自变量,所以要将单字节数列转换成字符串。Write方法负责转换这个双字节字符串,并用ASCII 格式写它。这就建立了一个包含我们原始的单字节字符串的二进制内容的文件。我已将这个文件命名为“uploaded+filename”,这只是为了区别文件,你可以使用任何其它文件名,如:
  
  ’Create and Write to a File Set MyFile = ScriptObject.CreateTextFile(Server.mappath(Request.ServerVariables _ ("PATH_INFO")) & "uploaded" & filename)
  For i = 1 to LenB(value)
  MyFile.Write chr(AscB(MidB(value, i, 1)))
  Next
  MyFile.Close
  
  将上载数据存入数据库
  
    数据还可以被存入数据库。content-type 也应该存入数据库中,以便以后显示数据。首先要建立与数据库的连接,假定已经设置了适当的DSN:
  
  Set