Postingan lainnya
membuat validasi file upload pada OOP
permisi agan-agan ane mau tanya seputar validasi upload file di oop. berikut kodenya
if(Input::get('submit')) {
$files = $user->upload('file');
$validation = new Validation();
$validation = $validation->check(array(
'title' => array(
'required' => true,
'min' => '5',
'max' => '100'
),
'desc' => array('required' => true),
// 'file' => array(
// 'required' => true,
// 'image/type' => 'jpeg'
// )
));
/* if( $files['error'] == 0){
if( $files['size'] < 1000000){
if($files['type'] == 'image/jpg'){
echo "masuk";
}else{
echo "formatnya harus jpg";
}
}else{
echo "Ukuran file kebesaran, maksimal 1Mb";
}
}else{
echo "Gagal upload file image";
}
*/
if($validation->passed()){
$user->add_data(array(
'title' => Input::get('title'),
'desc' => Input::get('desc'),
'file' => Input::get('file')
));
}else{
$errors = $validation->errors();
}
}
jadi ane mau numpuk validasinya khusus dikelas validasinya. berikut kodenya
class Validation{
private $_passed = false,
$_errors = array();
public function check($fields=array())
{
foreach ($fields as $items => $item) {
foreach ($item as $rule => $rule_value) {
switch ($rule) {
case 'required':
if( trim( Input::get($items)) == false && $rule_value == true ){
$this->addError("* $items wajib diisi");
}
break;
case 'min':
if(strlen(Input::get($items)) < $rule_value){
$this->addError("* $items minimal $rule_value karakter");
}
break;
case 'max':
if( strlen( Input::get($items)) > $rule_value){
$this->addError("* $items maksimal $rule_value karakter");
}
break;
case 'match':
if( Input::get($items) != $rule_value ){
$this->addError("* $items harus sama dengan $rule_value");
}
break;
default:
# code...
break;
}
}
}
terimakasih
0
1 Jawaban:
Jawaban Terpilih
Validasi untuk photos... kalo saya bikinnya begini...
public function checkPhotos($items = array())
{
foreach ($items as $item => $rules)
{
foreach ($rules as $rule => $rule_value)
{
$this->item=explode('_', $item);
$valueItem=implode(' ',$this->item);
if(!empty(input::gpFiles($item,'type'))){
$typeFile=explode('/',input::gpFiles($item,'type'));
}else{$typeFile=[0,1];}
// print_r($typeFile);
// die();
switch ($rule) {
case 'error':
if(Input::gpFiles($item,'error')>$rule_value)
{
$this->addError("Error ".ucfirst($valueItem));
}
break;
case 'required':
if(Input::gpFiles($item,'name')==null&&$rule_value==true)
{
$this->addError("Tidak ada file ".ucfirst($valueItem)." yang diUpload!!!");
}
break;
case 'type':
if(input::gpFiles($item,'type')!==$rule_value.'/'.$typeFile[1])
{
$this->addError("File yang anda upload bukan merupakan file ".ucfirst($valueItem));
}
break;
case 'size':
if(input::gpFiles($item,'size')>=$rule_value)
{
$this->addError("File ".ucfirst($valueItem)." berkapasitas lebih dari ".$rule_value." bytes");
}
break;
default:
break;
}
} // Penutup foreach kedua
} // Penutup foreach pertama
if(empty($this->_errors))
{
$this->_passed=true;
}
return $this;
} // Penutup fungsi checkPhotos
pada input tambahkan fungsi gpFiles....
public static function gpFiles($input, $nama)
{
return $_FILES[$input][$nama];
}
penggunaan...
// 1. Memanggil Objek Validasi
$validation=new validation();
// 2. Metode Check
$validation=$validation->checkPhotos(array(
'photos' => array(
'error' => 0,
'required'=> true,
'type' => 'image',
'size' => 7092005
// 'size' => 792005
)
));
0