Codeigniter - Как сделать поле загрузки файла необязательным? - PullRequest
0 голосов
/ 23 августа 2010

У меня есть форма, которая имеет 5 полей ввода файла, все отлично работает с моими методами CRUD, если поле файла не пустое, однако клиент теперь хочет установить некоторые поля не обязательными.

Вот как я пытаюсь сделать это в своем коде, проблема, с которой я сталкиваюсь, заключается в объявлении пустой переменной (для вставки пустого значения в соответствующее поле базы данных), если поле файла пустое. Я получаю сообщение от неопределенной переменной от codeigniter, когда ничего не загружено ...

Этот код проверяет, был ли файл загружен или нет.

if(isset($_FILES['ticketing_summary_file']))
    {
    $this->upload->initialize($config);
        if($this->upload->do_upload('ticketing_summary_file'))
        {
        $upload_data=$this->upload->data();                                
        $ticketing_summary_file_name=$upload_data['file_name'];
        $ticketing_summary_full_file_path = $path_to_uploads.'/'.$ticketing_summary_file_name;
        $show['ticketing_summary_file_url'] = $ticketing_summary_full_file_path;            
         }
    } 

    if(!isset($_FILES['ticketing_summary_file']))
    {       
    $show['ticketing_summary_file_url'] = $empty_file_message;                                  
    }                       

Тогда вот как я вставляю данные в свою базу данных ... Я попытался объявить содержимое 'ticketing_summary_file' в коде ниже и выше, но он в любом случае говорит, что он пустой

$show = array('tour_id' =>$tour,
                        'date' => $this->input->post('date'),
                        'location' => $location);
        $id = $this->show_model->save($show);

Приветствия за любую помощь,

Dan

1 Ответ

1 голос
/ 13 мая 2011

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

    <?php 

    //play code file field
    $play_code_errors= '';

    $data['play_code_file_name'] = uniqid('pc_', true) . 'csv'; 

    $config['upload_path'] = './media/tmp/';
    $config['allowed_types'] = 'csv';
    $config['max_size'] = '4024';
    $config['file_name'] = $data['play_code_file_name'];

    $this->upload->initialize($config);

    if ( ! $this->upload->do_upload('play_code_file'))
    {
        $play_code_errors = $this->upload->display_errors();

        if($play_code_errors = $this->lang->line('upload_no_file_selected'))
        {
            $play_code_errors = '';
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...