Upload 类別

Upload 类別可以安全地处理被上傳到应用程序的档案。 它能让你用不同的方式過濾上傳、定義目标档案名稱應該像怎樣、或過濾档案名稱的大小或長度。

配置

Upload 类別是透過 fuel/core/config/upload.php 配置档案進行配置。它已经填充了一个預設配置群組。你可以藉由複製此配置档案到你的应用程序 config 目录,并根據需求修改該档案,以覆寫此配置群組并添加新群組。

以下的配置設定可以被定義:

參数 类型 預設 描述
auto_process 布林
true
如果为 true,只要你使用 Upload 类別,上傳的档案将被使用儲存在配置档案的配置驗證。
max_size 整数
0
每个上傳档案的最大大小(以位元組为单位)。要停用最大尺寸的限制,設定此參数为 0。
ext_whitelist 陣列
array()
允許的副档名陣列。如果为空或沒定義,所有副档名都被允許。 副档名需要被定義为只有小寫。如果上傳的档案是大寫, 它的副档名将以小寫字母針對白名单比對。
ext_blacklist 陣列
array()
不允許的副档名陣列。如果为空或沒定義,所有副档名都被允許。 副档名需要被定義为只有小寫。如果上傳的档案是大寫, 它的副档名将以小寫字母針對黑名单比對。
type_whitelist 陣列
array()
允許的档案类型陣列。如果为空或沒定義,所有档案类型都被允許。 档案类型是档案 MIME 类型斜線前的部份。因此如果 MIME 类型是 "text/plain",添加 "text" 到此陣列來允許此类型的档案。
type_blacklist 陣列
array()
不允許的档案类型陣列。如果为空或沒定義,所有档案类型都被允許。
mime_whitelist 陣列
array()
允許的档案 MIME 类型陣列。如果为空或沒定義,所有档案 MIME 类型都被允許。
mime_blacklist 陣列
array()
不允許的档案 MIME 类型陣列。如果为空或沒定義,所有档案 MIME 类型都被允許。
prefix 字串
''
當你儲存一个上傳的档案時,档案名稱将以此字串前綴。
suffix 字串
''
當你儲存一个上傳的档案時,档案名稱将以此字串後綴。
extension 字串
''
當你儲存一个上傳的档案時,档案名稱的副档名将被此字串取代。
path 字串
''
要儲存上傳档案的路徑。
create_path 布林
true
如果为 true,定義的路徑将被建立如果不存在的話。 Upload 类別支援目录遞迴的建立,因此,如果權限設置妥當,任何路徑可以被建立。
path_chmod 整数
0777
在路徑被建立後,要被設定的權限。这个值必須被定義为八進位制,開頭有 0。
file_chmod 整数
0666
在上傳档案被儲存到定義的路徑之後,要被設定的權限。这个值必須被定義为八進位制,開頭有 0。
auto_rename 布林
true
如果为 true,在档案已经存在於指定路徑時,档案名稱将被後綴一个流水號。該流水號将是下一个可用的数字,從 1 開始。
overwrite 布林
false
如果为 true,當儲存時档案已存在,該档案将被覆寫。此設定将被忽略如果 'auto_rename' 为 true。
randomize 布林
false
如果为 true,當儲存時,档案将被指派为一个 32 字元的名稱(一个 MD5 字串)。其他設定仍会被套用。
normalize 布林
false
如果为 true,档案名稱将被轉換为一个 ASCII 名稱,并且在儲存時,所有空白会被底線取代。
normalize_separator 字串
'_'
如果你已经設定 normalize 为 true ,你可以更改空白要變为什么,而不是預設的底線。
max_length 整数
0
档案名稱的最大長度。这是計算在所有档案名稱選項被处理之後,要儲存的档案名稱,要停用最大尺寸的限制,設定此參数为 0。
new_name 字串

新的档案名稱。此設定沒有設定在預設配置,但支援 Upload::process 配置。新名稱将不会覆蓋前綴和後綴。

注意:上傳多个档案時,確保 auto_rename 設定是設为 true,以避免多个上傳覆寫相同的目标档案!

change_case 布林 false

此選項能让你強迫档案名稱的大小寫。可能的值有 'upper' 和 'lower'。

警告:如果你打算手动呼叫 Upload::process(),確保 auto_process 是設为 false。否則,上傳的档案会被处理兩次,而以重複的档案條目为結果。