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

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

用ASP和VBScript上载文件(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 142 ::
收藏到网摘: 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