我一直在試圖讓這個工作幾個小時,無數谷歌搜索沒有產生任何幫助。CakePhp上傳驗證
我想知道是否有一種方法來驗證表單fileInput內部的變量。所以就像在「上傳」表單中我想確保上傳[名稱]不是空的。我可以用Cakephp的模型驗證來做到這一點嗎?
我一直在試圖讓這個工作幾個小時,無數谷歌搜索沒有產生任何幫助。CakePhp上傳驗證
我想知道是否有一種方法來驗證表單fileInput內部的變量。所以就像在「上傳」表單中我想確保上傳[名稱]不是空的。我可以用Cakephp的模型驗證來做到這一點嗎?
Cakephp無法驗證文件輸入字段。
您可以通過自定義的驗證規則類似例子
下面做它的視圖文件
<?php
echo $this->Form->file('image');
echo $this->Form->error('image');
?>
對於模型文件
<?php
public $validate = array(
'image' => array(
'rule' => array('chkImageExtension'),
'message' => 'Please Upload Valid Image.'
)
);
public function chkImageExtension($data) {
$return = true;
if($data['image']['name'] != ''){
$fileData = pathinfo($data['image']['name']);
$ext = $fileData['extension'];
$allowExtension = array('gif', 'jpeg', 'png', 'jpg');
if(in_array($ext, $allowExtension)) {
$return = true;
} else {
$return = false;
}
} else {
$return = false;
}
return $return;
}
?>
@Sunman辛格的答案是不正確的了。
static Validation::extension(mixed $check, array $extensions = array('gif', 'jpeg', 'png', 'jpg'))
此規則檢查像
.jpg
或.png
有效的文件擴展名。允許 通過以array
的形式傳遞給他們多個擴展名。
public $validate = array(
'image' => array(
'rule' => array(
'extension',
array('gif', 'jpeg', 'png', 'jpg')
),
'message' => 'Please supply a valid image.'
)
);
static Validation::fileSize($check, $operator = null, $size = null)
該規則允許你檢查的filesizes。您可以使用
$operator
至 決定要使用的比較類型。此處也支持comparison()
支持的所有運營商 。
public $validate = array(
'image' => array(
'rule' => array('fileSize', '<=', '1MB'),
'message' => 'Image must be less than 1MB'
)
);
查看下列參考文獻的鏈接:這種方法將 自動從$_FILES
從 tmp_name
鑰匙讀取如果$check
是array
和包含該鍵處理數組值。 Altough,我建議書面方式你自己的功能更安全,但這些當然可以節省您的時間
http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::extension
你看着用蛋糕文件上傳插件? Meio上傳很簡單,很好。 Cakephp媒體插件顯然非常好,但工作起來很複雜。 –