AspUpload中文手册及语法

AspUpload中文手册及语法

  一、UploadManager 属性
  CodePage As Long (Read/Write)
  可以把表单的文本项目名和文件名的字符从指定的CodePage转换为Unicode,比如表单是按UTF-8提交的,那么这个属性应该设置为65001。其他的如1251 (Cyrillic), 1255 (Hebrew), 1256 (Arabic)等等。
  用法:
  Upload.CodePage = 65001
  -------------------------------------------
  
  DetectMacBinary As Boolean (Read/Write)
  默认为True。 这个属性用来控制是否检测上传的文件是MacBinary格式的,如果是则从中提取“data fork”。AspUpload 3.0 Beta 1. 不支持。
  用法:
  Upload.DetectMacBinary = False
  -------------------------------------------
  
  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
  -------------------------------------------
  
  IgnoreNoPost As Boolean (Read/Write)
  当Upload.Save方法被脚本直接调用,而不是通过表单提交时,可以避免 "Wrong Content-Type"这个错误。当表单和相应的上传脚本在同一个文件时,这个属性很有用。
  用法:
  Upload.IgnoreNoPost = True
  -------------------------------------------
  
  OverwriteFiles As Boolean (Read/Write)
  默认为True。如果设置为False,那么当文件名已经存在时,AspUpload会在原文件名后附加“(12)”这种形式的字符。这个属性影响Save, SaveVirtual 和 File.SaveAs方法。
  用法:
  Upload.OverwriteFiles = False
  -------------------------------------------
  
  PreserveFileTime As Boolean (Read/Write)
  默认为Flase。如果设置为True,会试图保护上传文件的上次修改时间。
  这个属性只是客户端使用XUpload或者JUpload 的时候有用。
  当使用常规Form提交的时候,它没有任何作用。
  用法:
  Upload.PreserveFileTime = False
  -------------------------------------------
  
  ProgressID As String (Read/Write)
  上传进度条所用的,用来区分上传进程。
  用法:
  Upload.ProgressID = Request.QueryString("PID")
  -------------------------------------------
  
  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 RegisterServer (Path As String, Optional Register) 模仿 REGSVR32 (/u)的动作。 注册或者卸载指定的ActiveX DLL.
  如果Register参数为True或忽略,为注册DLL, 否则为卸载。
  用法:
  Upload.RegisterServer "c:/path1/file.dll"
  Upload.RegisterServer "c:/path1/file.ocx", False
  -------------------------------------------
  
  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 SendBinary (Path As String, Optional IncludeContentType, Optional ContentType, Optional Attachment, Optional FileName)
  用作文件下载。
  取得指定的文件,发送给客户端浏览器。
  参数IncludeContentType默认为True。
  它控制着是否建立Content-Type, Content-Disposition 和Content-Length 这些Header信息. 如果设置为False,这些Header信息不会建立。
  ContentType 指定Content-Type header。
  Attachment 默认为False。如果设置为True,“Content-Disposition” header 将包括“attachment”关键字,强迫浏览器弹出下载框,而不是在浏览器中打开。
  FileName 指定下载框中的文件名。
  用法:
  Upload.SendBinary "c:/path/file.ext", True, "application/octet-stream", True
  -------------------------------------------
  
  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(?)"
  
  
  三、UploadedFile 属性
  ================================================
  Attributes As Long (Read/Write)
  设置和取得文件的系统属性。
  可以是以下值的结合。
  FILE_ATTR_READONLY = &H1
  FILE_ATTR_HIDDEN = &H2
  FILE_ATTR_SYSTEM = &H4
  FILE_ATTR_DIRECTORY = &H10
  FILE_ATTR_ARCHIVE = &H20
  FILE_ATTR_NORMAL = &H80
  FILE_ATTR_TEMPORARY = &H100
  FILE_ATTR_COMPRESSED = &H800
  用法:
  <!--METADATA TYPE="TypeLib" UUID="{B4E1B2DE-151B-11D2-926A-006008123235}"-->
  Response.Write File.Attributes
  File.Attributes = File.Attributes + FILE_ATTR_READONLY
  -------------------------------------------------------------
  
  Binary As Variant (Read-Only)
  返回文件的binary image 。It is a Variant-packed safe array of bytes.
  保存文件到数据库的时候有用。
  用法:
  rs.AddNew
  rs("image_blob).Value = File.Binary
  rs.Update
  -------------------------------------------------------------
  
  ContentType As String (Read-Only)
  返回文件的Content-Type。
  如:"text/plain" 或 "application/octet-binary".
  用法:
  Response.Write File.ContentType
  -------------------------------------------------------------
  
  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
  -------------------------------------------------------------
  
  ImageType As String (Read-Only)
  返回图片类型。 可能的返回值有"BMP", "GIF", "JPG", "PNG", 和"TIF" for BMP, GIF, JPEG, PNG 和TIFF images, 分别的, 和"UNKNOWN" (如果文件不是图片,或是已知图片类型以外的。)
  用法:
  Response.Write File.ImageType
  -------------------------------------------------------------
  
  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
  -------------------------------------------------------------
  
  MD5Hash As String (Read-Only)
  以十六进制返回文件的MD5 one-way Hash值。
  用法:
  Response.Write File.MD5Hash
  -------------------------------------------------------------
  
  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(?)"
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值