AspUpload对ASP编程人员来说要实现ASP网站文件上传功能它是首选。
首先们需要下载一个AspUpload组件
相关下载: aspupload上传组件 3.0 稳定安装版大小:758KB
本文就为大家介绍一下AspUpload组件的安装及使用方法,其中还附带了AspUpload安装的常见问题解答及一个使用AspUpload实现文件上传的实例。
用法:
< type=text/Java>attachEvent("", (){AutoSizeDIV(’CODE_7643’)}) 程序代码:
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。
用法:
<!--DATA 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.
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"
-------------------------------------------
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 (Recorset As Variant, Path As String) 使用ADO Recordset 对象从数据库的表中输出BLOB字段。
Recordset 是一个recordset字段,比如rs("image_blob").。
Path 完整的路径,包括文件名。
用法:
Set rs = Server.CreateObject("adodb.recordset")
rs.Open "MYIMAGES", Connect, 2, 3
Upload.FromRecordset rs("image_blob")., "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"
-------------------------------------------
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
-------------------------------------------
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
Upload.Save , Key, "xxx" ’ Save to memory, encrypt with Key
Upload.Save "c:\upload", Key, "xxx" ’ Save to hard drive, encrypt with Key
-------------------------------------------
SaveEncrypted (Path As String, Key As Object, Ext As String) As Long
此方法废止。 只用来向后兼容。用Save方法替代。
Upload.SaveEncrypted(Path, Key, Ext)
等价于
Upload.Save(Path, Key, Ext)
-------------------------------------------
SaveToMemory As Long
此方法废止。 只用来向后兼容。用Save方法替代。
Upload.SaveToMemory
等价于
Upload.Save
-------------------------------------------
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"
-------------------------------------------
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) s(?)"
-------------------------------------------
UploadedFile 属性
================================================
Attributes As Long (Read/Write)
设置和取得文件的系统属性。
可以是以下值的结合。www.58action.com
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
用法:
<!--DATA 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). = 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)
返回文件被保存的名称。www.5tuijian.com
如果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