Directory (Path As String, Optional SortBy, Optional Ascending) As Object (Read-Only) 返回一个集合,这个集合包括指定目录的所有子目录和文件的引用。 在这个集合里,子目录总是优先于文件.Path 可以包括通配符 * 和 ?。 SortBy 可以是: SORTBY_NAME (1, default). SORTBY_TYPE (2), SORTBY_SIZE (3), SORTBY_CREATIONTIME (4), SORTBY_LASTWRITETIME (5), and SORTBY_LASTACCESSTIME (6)。 Ascending 默认为True。 用法: <!--METADATA TYPE="TypeLib" UUID="{B4E1B2DE-151B-11D2-926A-006008123235}"--> Set Dir = Upload.Directory( "c:\path\*.*", SORTBY_SIZE) For Each Item in Dir ... Next -------------------------------------------
Expires As Date (Read-Only) 如果已经注册,返回9/9/9999,否则返回失效期。 用法: Response.Write Upload.Expires -------------------------------------------
Files As Object (Read-Only) 返回一个集合,这个集合包含有上传文件的引用。 使用这个集合之前,必须调用Save或 SaveVirtual方法。 要引用一个单个文件,可以使用从1开始的整数下标,或者相应的文件框的名称。 要列举集合里的项目,可以使用For/Each 语句。 用法: Set File = Upload.Files(1) Set File = Upload.Files( "FILE1") For Each File in Upload.Files ... Next -------------------------------------------
Form As Object (Read-Only) 返回一个集合,这个集合包括所有不是文件框的表单项目的引用。 使用这个集合之前,必须调用Save或 SaveVirtual方法。 要引用一个单个表单项目,可以使用从1开始的整数下标,或者相应的项目的名称。 要列举集合里的项目,可以使用For/Each 语句。 用法: Name = Upload.Form(1) Name = Upload.Form( "Name") For Each Item in Upload.Form Response.Write Item.Value Next -------------------------------------------
RegKey As String (Read/Write) 指定注册码,如果没有指定,AspUpload会从系统注册表读取。 用法: Upload.RegKey = "12345-67890-12345" -------------------------------------------
TotalBytes As Long (Read-Only) 返回上传的总字节数。 只能在成功调用Save(SaveVirtual)方法后调用这个属性。 用法: Response.Write Upload.TotalBytes -------------------------------------------
TotalSeconds As Long (Read-Only) 返回上传持续的总时间。 只能在成功调用Save(SaveVirtual)方法后调用这个属性。 用法: Response.Write Upload.TotalSeconds -------------------------------------------
Version As String (Read-Only) 返回组件的版数,如: "3.0.0.0"。 用法: Response.Write Upload.Version -------------------------------------------
二、UploadManager Methods ====================================================== Sub CopyFile (FromPath As String, ToPath As String, Optional Overwrite) 复制文件。 Overwrite 默认为True。如果设置为False,当目标路径存在时,这个方法会失败。 用法: Upload.CopyFile "c:\path1\file.ext", "c:\path2\file.ext" -------------------------------------------
Sub CreateDirectory (Path As String, Optional IgnoreAlreadyExists) 建立目录。 IgnoreAlreadyExists 默认为False。如果设置为True,当目标路径存在时,这个方法不会报错。 用法: Upload.CreateDirectory "c:\dir1\dir2", True -------------------------------------------
Sub CreateFile (Path As String) 建立一个空文件。 用法: Upload.CreateFile "c:\path\file.txt" -------------------------------------------
Sub DecryptAndSendBinary (Path As String, IncludeContentType As Boolean, ContentType As String, Key As CryptoKey, RemoveExt As Boolean, Optional Attachment, Optional FileName). 和SendBinary相同,但是发送之前会使用Key对文件进行编码,这个Key可以由AspEncrypt组件生成。 RemoveExt参数指定下载框中是否显示文件的扩展名。 如果Attachment参数设置为True,输出的Header中Content-Disposition 将包括关键字"attachment;",以强迫IE下载这个文件。 FileName参数, 指定下载框中显示的文件名。 用法: Upload.DecryptAndSendBinary "c:\dir\file.txt.xxx", True, "application/octet-stream", Key, True, True -------------------------------------------
Sub DeleteFile (Path As String) 删除文件。 用法: Upload.DeleteFile "c:\path\file.txt" -------------------------------------------
Function FileExists (Path As String) As Boolean 检测文件是否存在。 用法: if Upload.FileExists( "c:\path\file.txt") Then ... -------------------------------------------
Sub FromDatabase (Connect As String, SQL As String, Path As String) 使用ODBC,从数据库的表中输出BLOB字段到硬盘。 Connect 指定ODBC连接字符串。 SQL 该SQL语句应该返回一条记录,这个记录应该包括Blob字段。 Path 完整的文件路径,包括文件名。 用法: Upload.FromDatabase "DSN=mydb;UID=sa;PWD=xxx;", "select image_blob from myimages where id = 3", "c:\path\file.txt" -------------------------------------------
Sub FromRecordset (RecorsetValue As Variant, Path As String) 使用 ADO Recordset 对象从数据库的表中输出BLOB字段。 RecordsetValue 是一个recordset字段,比如rs("image_blob").Value。 Path 完整的路径,包括文件名。 用法: Set rs = Server.CreateObject( "adodb.recordset") rs.Open "MYIMAGES", Connect, 2, 3 Upload.FromRecordset rs( "image_blob").Value, "c:\path\file.txt" -------------------------------------------
Sub LogonUser (Domain As String, Username As String, Password As String, Optional Flags) 扮演指定的用户帐号。 如果Domain 是空的,那么本机将会验证这个密码。 如果您当前的安全设置不允许你执行上传到远程机器或者其他操作,可以使用这个方法。 Flags 可以是以下值: LOGON_INTERACTIVE (2, default), LOGON_NETWORK (3), LOGON_BATCH (4), and LOGON_SERVICE (5)。不推荐使用这个可选参数。 用法: Upload.LogonUser "domain", "jsmith", "xxxxxx" -------------------------------------------
Sub MoveFile (FromPath As String, ToPath As String) 移动文件。如果目标路径存在,这个方法将会报错。 用法: Upload.MoveFile "c:\path1\file.ext", "c:\path2\file.ext" -------------------------------------------
Function OpenFile (Path As String) As Object 建立一个UploadedFile 实例,它指向指定的文件。 如果你想使用UploadedFile.Binary属性的优势,保存任意文件到数据库,这个方法很有用。 用法: Set File = Upload.OpenFile( "c:\path1\file.ext") -------------------------------------------
Sub RemoveDirectory (Path As String) 删除目录,如果目录包含文件或子目录,会报错。 用法: Upload.RemoveDirectory "c:\path" -------------------------------------------
Sub RevertToSelf 结束由 LogonUser方法开始的扮演。 通常不需要调用这个方法,角色扮演会自动结束。 用法: Upload.RevertToSelf -------------------------------------------
Function Save (Optional Path, Optional Key, Optional Ext) As Long 最主要的方法。捕获文件,保存到硬盘或内存,组装Files和Form集合。 Path参数, 如果指定,则是文件保存到的路径。 如果Path参数被忽略,文件保存到内存,可以通过File.Binary存取,或者通过File.SaveAs保存到硬盘。 参数Key和Ext,用来加密上传的文件。 Key是一个CryptoKey对象,它由AspEncrypt组件生成。如果指定这个参数,文件保存之前将会被加密。 Ext是可选扩展名。 方法返回值:成功保存的文件数。 用法: Count = Upload.Save ” save to memory Count = Upload.Save( "c:\upload") ” save to hard drive Upload.Save "c:\upload" ” save to hard drive, ignore return value Upload.Save , Key, "xxx" ” Save to memory, encrypt with Key Upload.Save "c:\upload", Key, "xxx" ” Save to hard drive, encrypt with Key -------------------------------------------
Function SaveEncrypted (Path As String, Key As Object, Ext As String) As Long 此方法废止。 只用来向后兼容。用Save方法替代。 Upload.SaveEncrypted(Path, Key, Ext) 等价于 Upload.Save(Path, Key, Ext) -------------------------------------------
Function SaveToMemory As Long 此方法废止。 只用来向后兼容。用Save方法替代。 Upload.SaveToMemory 等价于 Upload.Save -------------------------------------------
Function SaveVirtual (Optional VirtualPath, Optional Key, Optional Ext) As Long 和Save方法相同,但是参数为虚拟路径,而不是物理路径。 方法内部调用Server.MapPath方法转换虚拟路径为物理路径。 因此, Upload.SaveVirtual(path) 等价于Upload.Save(Server.MapPath(path))。 在Web主机环境里,系统管理员可以禁止Save方法,强迫AspUpload用户使用SaveVirtual方法,以便限制他在自己的目录中进行操作。 用法: Upload.SaveVirtual "/images" Upload.SaveVirtual "/images", Key, "xxx" -------------------------------------------
Function SaveVirtualEncrypted (Optional VirtualPath, Optional Key, Optional Ext) As Long 此方法废止。 只用来向后兼容。用SaveVirtual方法替代。 -------------------------------------------
Sub SetMaxSize (MaxSize As Long, Optional Reject) 指定单个文件的限定大小。 参数Reject 指定过大的文件是否会拒绝(True的时候)或截取(False或省略的时候)。 用法: Upload.SetMaxSize 150000, True -------------------------------------------
Sub ToDatabaseEx (Path As String, Connect As String, SQL As String, Optional MSAccessHeaders) 保存任意的文件到数据库。 查看UploadedFile.ToDatabase 方法。 用法: Upload.ToDatabaseEx "c:\path\file.txt", "DSN=mydb;", "insert into myimages(image_blob) values(?)"
CreationTime As Date (Read-Only) 返回文件的创立时间戳。如果是内存文件,这个属性没有定义。 用法: Response.Write File.CreationTime -------------------------------------------------------------
Ext As String (Read-Only) 返回文件扩展名。 用法: Response.Write File.Ext -------------------------------------------------------------
FileName As String (Read-Only) 返回文件被保存的名称。 如果Upload.OverwriteFiles为False,它可能和原始文件名不同。 用法: Response.Write File.FileName -------------------------------------------------------------
Folder As String (Read-Only) 返回文件被保存的文件夹名。 如果是内存文件,和原始文件夹名相同。 用法: Response.Write File.Folder -------------------------------------------------------------
ImageHeight As Long (Read-Only) 返回图片的像素高。如果不是图片,返回0。 格式支持BMP, JPG, GIF, 和 PNG。 用法: Response.Write File.ImageHeight -------------------------------------------------------------
ImageWidth As Long (Read-Only) 返回图片的像素宽。如果不是图片,返回0。 格式支持BMP, JPG, GIF, 和 PNG。 用法: Response.Write File.ImageWidth -------------------------------------------------------------
LastAccessTime As Date (Read-Only) 返回文件的上次存取时间戳。如果是内存文件,这个属性没有定义。 用法: Response.Write File.LastAccessTime -------------------------------------------------------------
LastWriteTime As Date (Read-Only) 返回文件的上次写入时间戳。如果是内存文件,这个属性没有定义。 除非这个文件是由XUpload或JUpload上传的,并且PreserveFileTime特性是打开的。 用法: Response.Write File.LastWriteTime -------------------------------------------------------------
Name As String (Read-Only) 返回文件在表单中对应项目的名称。 这个属性不能取得文件名,应该使用FielName。 用法: Response.Write File.Name -------------------------------------------------------------
OriginalFileName As String (Read-Only) 返回文件的原始文件名。 用法: Response.Write File.OriginalFileName -------------------------------------------------------------
OriginalFolder As String (Read-Only) 返回文件的原始文件夹。 用法: Response.Write File.OriginalFolder -------------------------------------------------------------
OriginalPath As String (Read-Only) 返回文件的原始的完整路径。 用法: Response.Write File.OriginalPath -------------------------------------------------------------
OriginalSize As Long (Read-Only) 返回文件的原始大小。 这个值可能和当前大小不同,如果文件通过SetMaxSize方法被截断的时候。 用法: Response.Write File.OriginalSize -------------------------------------------------------------
Path As Long (Read-Only) 返回文件在服务器上的完整路径。 用法: Response.Write File.Path -------------------------------------------------------------
Size As Long (Read-Only) 返回文件在服务器上的大小。 如果SetMaxSize 特性是有效的,这个值可能和原始大小不同。 用法: Response.Write File.Size
四、UploadedFile Methods ====================================================== Sub AllowAccess (Account As String, Flags As Long) 给指定的NT用户增加“允许访问控制(ACE)”到文件的“访问控制列表(ACL)”。 参数Flags 必须是有效的访问类型的组合,这些值在AspUpload.inc中进行了定义,如: GENERIC_ALL。 其他有效的Flag组合包括: Read (RX):GENERIC_READ + FILE_GENERIC_EXECUTE Change(RWXD): GENERIC_READ + GENERIC_WRITE + FILE_GENERIC_EXECUTE + DELETE Full Control (All): GENERIC_ALL 用法: File.AllowAccess "jsmith", GENERIC_ALL ----------------------------------------------------------
Sub Copy (Path As String, Optional Overwrite) 复制文件到指定的路径,此路径必须是有权限的。 如果参数Overwrite设置为True或者忽略,覆盖存在的文件。如果设置为False,并且指定路径下文件已经存在,那么报错。 用法: File.Copy "c:\newpath\" & File.FileName ----------------------------------------------------------
Sub CopyVirtual (VirtualPath As String, Optional Overwrite) 和Copy方法相同。 但是参数为虚拟路径,而不是物理路径。 如果系统管理员禁止了Copy方法,用户被迫使用CopyVirtual方法,这将限制他们在自己的目录下进行操作。 用法: File.CopyVirtual "/uploads/" & File.FileName ----------------------------------------------------------
Sub Delete 删除文件。 用法: File.Delete ----------------------------------------------------------
Sub DenyAccess (Account As String, Flags As Long) 给指定的NT用户增加“拒绝访问控制(ACE)”到文件的“访问控制列表(ACL)”。 参数Flags必须设置为GENERIC_READ。 用法: File.DenyAccess "jsmith", GENERIC_ALL ----------------------------------------------------------
Sub ExtractFileName 此方法废止,仅用来保持向后兼容。请使用FileName。 用法: Response.Write File.ExtractFileName ----------------------------------------------------------
Sub ExtractFolderName 此方法废止,仅用来保持向后兼容。请使用Folder。 用法: Response.Write File.ExtractFolderName ----------------------------------------------------------
Sub Move (Path As String) 移动文件到指定的路径,该路径必须有权限。 如果文件已经存在,将报错。 副作用:如果此方法成功执行,File.Path 属性将更新为新路径。 用法: File.Move "c:\newpath\" & File.FileName ----------------------------------------------------------
Sub MoveVirtual (VirtualPath As String) 和Move方法相同,但参数是虚拟路径,而不是物理路径。 用法: File.MoveVirtual "/uploads/" & File.FileName ----------------------------------------------------------
Sub RevokeAllowance (Account As String) 从文件的ACL移除相应的允许ACE 。 用法: File.RevokeAllowance "jsmith" ----------------------------------------------------------
Sub RevokeDenial (Account As String) 从文件的ACL移除相应的拒绝ACE 。 用法: File.RevokeDenial "jsmith" ----------------------------------------------------------
Sub SaveAs (Path As String) 保存文件到指定的路径。 如果UploadManager.OverwriteFiles 设置为False,并且指定的路径下文件已经存在, 次方法将在原文件名后追加(1)(2)等形式的字符,以生成唯一文件名。 此方法是保存内存文件到硬盘的唯一方法。 副作用:如果此方法成功执行, UploadedFile.Path 将更新为新路径(或者源于他的新的唯一文件名。)。 用法: File.SaveAs "c:\path\" & File.FileName ----------------------------------------------------------
Sub SaveAsVirtual (VirtualPath As String) 和Save方法相同。 但是参数为虚拟路径,而不是物理路径。 如果系统管理员禁止了Save方法,用户被迫使用SaveVirtual方法,这将限制他们在自己的目录下进行操作。 用法: File.SaveAsVirtual "/path/" & File.FileName ----------------------------------------------------------
Sub SetOwner (Account As String, Flags As Long) 将指定的NT用户指定为文件的NTFS所有者。 用法: File.SetOwner "jsmith" ----------------------------------------------------------
Sub ToDatabase (Connect As String, SQL As String, Optional MSAccessHeaders) 使用ODBC,将文件作为BLOB保存到数据库。 参数Connect 是一个ODBC连接字符创,可以用系统DSN,或非DSN,如: "DSN=mydb;UID=sa;PWD=xxxxx" 或者 "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\path\db.mdb" 但是, Connect 不能使 ADO-style 连接串,也就是说,它不能涉及一个旧的DB provider, 因为这个方法是基于ODBC的。 SQL 是一个INSERT或UPDATE的SQL语句, 用问号作为保存到数据库的文件的占位符,如: "INSERT INTO mytable(image_blob, path) values(?, ”c:\path\file.ext”)" 或者 "UPDATE mytable SET imageblob = ? WHERE id = 15" MSAccessHeaders 参数只能用在 MS Access 数据库。 如果设置为True, AspUpload 将试图把文件作为OLE对象保存,而不是作为BLOB。 以便文件可以在MS Access中通过双击字段直接调用。 只有当文件类型存在于OLE document servers 的文件类型(如MS Word documents (*.doc), Excel workbooks (*.xls), bitmaps (*.bmp)等等)中时,此特性才有效。 对于其他类型的文件,(如 *.gif) ,参数 MSAccessHeaders 将被忽略,并且假定为False。 注意:你不能直接下载一个以OLE对象保存的文件。 用法: File.ToDatabase "DSN=mydb;UID=sa;PWD=xxxx;", "insert into myimages(image_blob) values(?)"