2015-09-07 2 views
1

Я хочу создать форму с php, которые имеют несколько частей и тип данных. Такие, как: ввода текста (имя, название, описание и т.д.) входного изображения (header_img) Input Multiple изображение (слайдер)Несколько типов Post CRUD

Дело в том, что я хочу создать много данных включают в себя загрузить файл на одной странице с помощью PHP. В методе post я пробую стандартную логику, загружаю один за другим изображения с логикой if else, с большим количеством if else логики и другое имя и вставляем его в каждое поле базы данных (одно поле в одной базе данных) huft ....

if($_FILES['imghead']['size']!=0){ 
// run upload method 
} 

И для редактировать, я стараюсь его вручную, так же, как метод пост, используя, если еще для каждого поля. например:

if($_FILES['imghead']['size']!=0){ 
// run upload method 
} 
if($_FILES['slider1']['size']!=0){ 
// run upload method 
} 
if($_FILES['slider2']['size']!=0){ 
// run upload method 
} 
if($_FILES['slider3']['size']!=0){ 
// run upload method 
} 
// etc 

Но проблема в том, я думаю, что мой метод не очень хорошо, его не эффективен, и я должен написать много кода и проверить их один номой один с, если еще логикой.

Мой вопрос: Знаете ли вы, как оптимизировать свою логику для простого простого кода? специально CRUD.

я есть попробовать походам в CRUD, но мне нужно больше функции, как несколько изображений загрузить

+0

на самом деле вы можете использовать ползунок [] вместо slider1,2,3 в форме, то вы можете использовать Еогеасп ($ _ FILES [ 'слайдер'], как $ FILEINFO) {...} – bksi

ответ

1

Существует способ реализовать несколько изображений загрузить с grocerycrud, в контроллере нужно Asign другой метод имя для каждой загрузки поле, которое вам нужно, а затем просто скопировать вставить основной метод в файле Grocery_CRUD.php и изменить имя к тому же, что вы назначили

Controller код:

$crud->set_field_upload('file1','assets/uploads'); 
$crud->set_another_field_upload('file2','assets/uploads'); 

Это код, который нужно скопировать, (маршрут: HTDOCS \ app_name \ Application \ библиотеки \ Grocery_CRUD.php)

public function set_field_upload($field_name, $upload_dir = '') 
{ 
    $upload_dir = !empty($upload_dir) && substr($upload_dir,-1,1) == '/' 
        ? substr($upload_dir,0,-1) 
        : $upload_dir; 
    $upload_dir = !empty($upload_dir) ? $upload_dir : 'assets/uploads/files'; 

    /** Check if the upload Url folder exists. If not then throw an exception **/ 
    if (!is_dir(FCPATH.$upload_dir)) { 
     throw new Exception("It seems that the folder \"".FCPATH.$upload_dir."\" for the field name 
       \"".$field_name."\" doesn't exists. Please create the folder and try again."); 
    } 

    $this->upload_fields[$field_name] = (object) array(
      'field_name' => $field_name, 
      'upload_path' => $upload_dir, 
      'encrypted_field_name' => $this->_unique_field_name($field_name)); 
    return $this; 
} 

Просто вставьте его ниже и изменить имя функции с тем же именем, назначенным в контроллере :

public function set_another_field_upload($field_name, $upload_dir = '') 
{ 
    $upload_dir = !empty($upload_dir) && substr($upload_dir,-1,1) == '/' 
        ? substr($upload_dir,0,-1) 
        : $upload_dir; 
    $upload_dir = !empty($upload_dir) ? $upload_dir : 'assets/uploads/files'; 

    /** Check if the upload Url folder exists. If not then throw an exception **/ 
    if (!is_dir(FCPATH.$upload_dir)) { 
     throw new Exception("It seems that the folder \"".FCPATH.$upload_dir."\" for the field name 
       \"".$field_name."\" doesn't exists. Please create the folder and try again."); 
    } 

    $this->upload_fields[$field_name] = (object) array(
      'field_name' => $field_name, 
      'upload_path' => $upload_dir, 
      'encrypted_field_name' => $this->_unique_field_name($field_name)); 
    return $this; 
} 
Смежные вопросы