Upload 类別
Upload 类別可以安全地处理被上傳到应用程序的档案。 它能让你用不同的方式過濾上傳、定義目标档案名稱應該像怎樣、或過濾档案名稱的大小或長度。
配置
Upload 类別是透過 fuel/core/config/upload.php 配置档案進行配置。它已经填充了一个預設配置群組。你可以藉由複製此配置档案到你的应用程序 config 目录,并根據需求修改該档案,以覆寫此配置群組并添加新群組。
以下的配置設定可以被定義:
參数 | 类型 | 預設 | 描述 |
---|---|---|---|
auto_process | 布林 |
|
如果为 true,只要你使用 Upload 类別,上傳的档案将被使用儲存在配置档案的配置驗證。 |
max_size | 整数 |
|
每个上傳档案的最大大小(以位元組为单位)。要停用最大尺寸的限制,設定此參数为 0。 |
ext_whitelist | 陣列 |
|
允許的副档名陣列。如果为空或沒定義,所有副档名都被允許。 副档名需要被定義为只有小寫。如果上傳的档案是大寫, 它的副档名将以小寫字母針對白名单比對。 |
ext_blacklist | 陣列 |
|
不允許的副档名陣列。如果为空或沒定義,所有副档名都被允許。 副档名需要被定義为只有小寫。如果上傳的档案是大寫, 它的副档名将以小寫字母針對黑名单比對。 |
type_whitelist | 陣列 |
|
允許的档案类型陣列。如果为空或沒定義,所有档案类型都被允許。 档案类型是档案 MIME 类型斜線前的部份。因此如果 MIME 类型是 "text/plain",添加 "text" 到此陣列來允許此类型的档案。 |
type_blacklist | 陣列 |
|
不允許的档案类型陣列。如果为空或沒定義,所有档案类型都被允許。 |
mime_whitelist | 陣列 |
|
允許的档案 MIME 类型陣列。如果为空或沒定義,所有档案 MIME 类型都被允許。 |
mime_blacklist | 陣列 |
|
不允許的档案 MIME 类型陣列。如果为空或沒定義,所有档案 MIME 类型都被允許。 |
prefix | 字串 |
|
當你儲存一个上傳的档案時,档案名稱将以此字串前綴。 |
suffix | 字串 |
|
當你儲存一个上傳的档案時,档案名稱将以此字串後綴。 |
extension | 字串 |
|
當你儲存一个上傳的档案時,档案名稱的副档名将被此字串取代。 |
path | 字串 |
|
要儲存上傳档案的路徑。 |
create_path | 布林 |
|
如果为 true,定義的路徑将被建立如果不存在的話。 Upload 类別支援目录遞迴的建立,因此,如果權限設置妥當,任何路徑可以被建立。 |
path_chmod | 整数 |
|
在路徑被建立後,要被設定的權限。这个值必須被定義为八進位制,開頭有 0。 |
file_chmod | 整数 |
|
在上傳档案被儲存到定義的路徑之後,要被設定的權限。这个值必須被定義为八進位制,開頭有 0。 |
auto_rename | 布林 |
|
如果为 true,在档案已经存在於指定路徑時,档案名稱将被後綴一个流水號。該流水號将是下一个可用的数字,從 1 開始。 |
overwrite | 布林 |
|
如果为 true,當儲存時档案已存在,該档案将被覆寫。此設定将被忽略如果 'auto_rename' 为 true。 |
randomize | 布林 |
|
如果为 true,當儲存時,档案将被指派为一个 32 字元的名稱(一个 MD5 字串)。其他設定仍会被套用。 |
normalize | 布林 |
|
如果为 true,档案名稱将被轉換为一个 ASCII 名稱,并且在儲存時,所有空白会被底線取代。 |
normalize_separator | 字串 |
|
如果你已经設定 normalize 为 true ,你可以更改空白要變为什么,而不是預設的底線。
|
max_length | 整数 |
|
档案名稱的最大長度。这是計算在所有档案名稱選項被处理之後,要儲存的档案名稱,要停用最大尺寸的限制,設定此參数为 0。 |
new_name | 字串 | 無 |
新的档案名稱。此設定沒有設定在預設配置,但支援 Upload::process 配置。新名稱将不会覆蓋前綴和後綴。 注意:上傳多个档案時,確保 auto_rename 設定是設为 true,以避免多个上傳覆寫相同的目标档案! |
change_case | 布林 | false |
此選項能让你強迫档案名稱的大小寫。可能的值有 'upper' 和 'lower'。 |
警告:如果你打算手动呼叫 Upload::process(),確保 auto_process 是設为 false。否則,上傳的档案会被处理兩次,而以重複的档案條目为結果。