2010-08-22 42 views
0

我有一個有5個文件輸入字段的表單,如果文件字段不是空的,所有工作都可以正常使用我的CRUD方法,但是客戶端現在想要將某些字段設置爲非強制性的。Codeigniter - 如何使文件上傳字段非強制?

這是我如何在我的代碼中執行它,如果文件字段爲空,我遇到的問題是聲明一個空變量(在相應的數據庫字段中插入一個空值)。當沒有任何東西上傳時,我從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); 

乾杯的任何幫助,

+0

有沒有人有想法?我真的在這麼簡單的事情上掙扎。 – 2010-08-24 08:32:20

+0

你是否得到了此答案?如果是這樣,刪除它或張貼您的答案。 – Jakub 2011-03-15 13:03:47

回答

1

我遇到了類似的問題。我最終檢查了上傳錯誤是否與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 = ''; 
     } 
    }