用VB6做一个简单的文件上传组件(二)

开着铲车追宝马

开着铲车追宝马

2016-01-29 17:15

用VB6做一个简单的文件上传组件(二),用VB6做一个简单的文件上传组件(二)
  接着上回,新建一个ActiveX DLLs类型的工程,并将缺省的工程名由“Project1”改为“Songbird”(当然你也有权不这样改,呵呵),将缺省的类名由“Class1”改为“FileUp”,至于为什么要这样改,以后你便知道了。
    要想实现读取上传文件字节数据的功能,势必要涉及到Request对象,可是在VB中该怎么做呢?简单,只需要在工程中加入适当的类型库的参考即可。点击Project菜单选择References,在随之出现的对话框中选中Microsoft Active Server Pages Object项以及Microsoft Transaction Server Type Library项,单击OK,便可以在VB环境中象写ASP代码一样操纵Request、Response等对象了,你会感到非常亲切的。
    以下便是具体的程序代码:

    Public Function SaveFile(Pathname As String) As String
        OnError Goto ErrorCode
        Dim objContext As ObjectContext
        Dim objRequest As Request

        'ObjectContext的使用类似于ASP中的Application和Session对象,
        '可以用关键值对其内部的一些特定的对象实例进行访问,
        '如ObjectContext("Response")

        Set objContext=GetObjectContext()
        Set objRequest=objContext("Request")

        '以下的一段代码与前文的脚本程序类似,
        '只不过对变量的定义要严格些

        Dim FormData() As Byte,CLStr,DivStr
        Dim DataStart As Long,DataSize As Long

        DataSize=objRequest.TotalBytes
        Redim FormData(DataSize-1)
        FormData=objRequest.BinaryRead(DataSize)
        CLStr=ChrB(13) & ChrB(10)
        DataStart=InStrB(FormData,CLStr & CLStr)+4
        DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)
        DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2
        FormData=MidB(FormData,DataStart,DataSize)

        '创建一个二进制文件并将FormData写入其中
        Open Pathname For Binary As 1
        Put #1,,FormData
        Close #1

        SaveFile="OK!"
        Exit Function
    ErrorCode: SaveFile=Err.Description
    End Function
    
    大功告成!剩下的便是怎样使用这段程序了。
    点击File菜单,选择Make Songbird.dll,系统便会将这段程序编译成DLL文件并自动在本机进行注册。除非你直接在服务器上开发,否则应将此文件拷贝到NT服务器的System32目录下并运行“regsvr32 Songbird.dll”命令进行注册。注册成功之后,在负责接受上传文件的那个ASP文件中这样使用该组件:
    <%
      Dim fu
      Set fu=Server.CreateObject("Songbird.FileUp")
      '用惯了CreateObject("ADODB.Connection"),
      '此时看见了用自己的大名命名的组件,俺的内心立马充满了无限的激动,
      '哈哈哈哈!...@#$%&*,对不起,抒情好象不是俺的强项,呵呵

      '将文件保存到服务器的D盘根目录下
      Response.Write
展开更多 50%)
分享

猜你喜欢

用VB6做一个简单的文件上传组件(二)

ASP
用VB6做一个简单的文件上传组件(二)

用VB6做一个简单的文件上传组件(一)

ASP
用VB6做一个简单的文件上传组件(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用VB6创建MTS组件

ASP
用VB6创建MTS组件

一个简单上传文件出错的解决

PHP
一个简单上传文件出错的解决

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个老个写的无组件上传

ASP
一个老个写的无组件上传

组件制作之二(一个简单组件的制作过程)

编程语言 网络编程
组件制作之二(一个简单组件的制作过程)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

激活Vista 启动Logo画面

激活Vista 启动Logo画面

在ASP应用中验证用户身份(1)

在ASP应用中验证用户身份(1)
下拉加载更多内容 ↓