打印本文 打印本文 关闭窗口 关闭窗口
建立自己的上传组件的编程思路
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2026  更新时间:2009/4/23 18:58:51  文章录入:mintao  责任编辑:mintao
p;         Err.Raise ERR_NO_FILENAME
        End If
        If Not CheckFileExtension(strFileName) Then
                Err.Raise ERR_NO_EXTENSION
        End If
        lngFileDataStart = InStr(InStr(varHTTPHeader, strFileName), varHTTPHeader, vbCrLf & vbCrLf) + 4
        lngFileDataEnd = InStr(lngFileDataStart, varHTTPHeader, varDelimeter)
        lngFileLength = lngFileDataEnd-lngFileDataStart
        If lngFileLength <= 2 Then
            Err.Raise ERR_EMPTY_FILE
        End If

        If Not lngMaxFileBytes = 0 Then
            If lngMaxFileBytes < lngFileLength Then
                Err.Raise ERR_FILESIZE_NOT_ALLOWED
            End If
        End If
        If Not fs.FolderExists(strUploadPath) Then
            Err.Raise ERR_FOLDER_DOES_NOT_EXIST
        End If

        If fs.FileExists(strUploadPath & strFileName) Then
            Err.Raise ERR_FILE_ALREADY_EXISTS
        End If
        Set sFile = fs.CreateTextFile(strUploadPath & strFileName, True)
        sFile.Write varContent , lngFileDataStart, lngFileLength
        Close File
        sFile.Close
        Set sFile = Nothing
        Set fs = Nothing
    
    Next
    DoUpload = ""
    Exit Function
DoUpload_Err:
    arrError(0, 0) = "Error"
    Select Case Err.Number
        Case ERR_NO_FILENAME
            arrError(0, 1) = "没有输入需要提交的文件名。"
        Case ERR_NO_EXTENSION
            arrError(0, 1) = "文件扩展名出错。"
        Case ERR_EMPTY_FILE
            arrError(0, 1) = "你要上载的文件长度为0。"
        Case ERR_FILESIZE_NOT_ALLOWED
            arrError(0, 1) = "总共要上传 [" & lngFileLength &_
             "] 字节超过了允许的最大要求 [" &_
             lngMaxFileBytes & "]."
        Case ERR_FOLDER_DOES_NOT_EXIST
            arrError(0, 1) = "上传的目录不存在。"
        Case ERR_FILE_ALREADY_EXISTS
            arrError(0, 1) = "文件 [" & strFileName & "] 已经存在了。"
        Case Else
            arrError(0, 1) = Err.Description
    End Select
    DoUpload = arrError()
End Function

            

以前搜集的一些资料---有关文件上传组件的一些比较和说明

关键词:ASP

介绍现在比较常用的三种上载组件:
这三种组件都允许用户使用IE3.02以上和Netscape2.0以上版本上载文件
1。Microsoft的 Posting Acceptor组件
该组件使用ISAPI这个不用注册的DLL,FORM提交后发给这个dll,该组件
能够将文件写入指定目录,同时能够redirect到下一页面。
当然你必须要对写入的
目录具有写入的权限,所以一般用它在win95+pws下通过的程序一放到NT上来
就会出现错误,因为它不理解NT的权限和SSL机制。这就意味着不是所有的人都能够
随便上载文件甚至根本就没人能够上载文件。
其次,它不支持把文件写入到数据库中。所以如果你想拥有这个功能,你就需要
使用VB6来开发自己的组件。
再则,它的帮助少得可怜,你还不能够限制上载文件的大小,以及设置用户的权限
总之,它除了能够完成把文件保存下来的功能外一无是处。
2。Persits Software的 ASPUpload组件
这是一个功能很强大的COM组件,但如果要使用它的完全版需要交费。
它能够实现以下功能:
a.限制上载文件的大小
b.设置用户的权限
c.修改文件属性
d.同时上载多个文件
e.能够将文件保存到数据库中
f.支持文件删除,自动生成与服务器上文件不同名的文件
g.拥有管理权限的用户甚至可以使用该控件进行远程注册
3。Software Artisans的SA-FileUp 组件
这是最贵和功能最强大的文件上载组件了。
它的完全版本具备以下功能:
1。完整的文档,包括丰富的例子程序
2。给文件上载提供了完善的安全机制
3。使用ADO方式写入数据库,它还支持VB Web class

总结如下:

Feature               Posting Acceptor     ASPUpload       SA-FileUp
单用户           Free                 $99              $129
完全版         Free                 $300             $1,999
简单Form提交     Yes                  Yes              Yes
多文件上传                No                   Yes              Yes
和ASP结合程度     No                   Yes              Yes
是否能够处理文件     No                   Yes        Yes
是否支持数据库插入操作No                   Yes        Yes
是否支持ADO    NO              Yes         No
是否有对ACL的处理     No               Yes        Yes
是否支持对文件加密     No               No         Yes
是否支持自动安装      No               No         Yes
在线帮助         很少               充分        多方面的
例子程序         很少               一些     很多
在线帮助          很少               好         很好

建议:
1。如果你仅仅是想练手,可以使用Posting Acceptor
2.如果你要实现对网站的解决方案,使用ASPUpload或则SA-FileUp,当然你还
可以自己动手编程

 

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口