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(?)" 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章