2010-07-19 101 views
6

我確定這很簡單,但我看不到如何使用CI選項上傳文件。codeigniter文件上傳 - 可選?

如果您將文件輸入框留空,則會顯示錯誤「您沒有選擇上傳文件」。

我希望它是可選的原因是我的表單編輯了一個目錄類型列表,並且我不需要每次編輯列表時都上傳圖像。

有沒有辦法刪除了「必需的」錯誤處理的文件類

回答

13

使用以下命令:

<?php if ($_FILES AND $_FILES['field_name']['name']) 
{ 
    // Upload the file 
} 
+4

使用它在哪裏?爲什麼很難多輸入一點來解釋它發生的地方...... – serdarsenay 2013-03-14 02:29:33

+0

我確信在控制器中,codeigniters上傳rutine之前被調用。 – Kyslik 2014-01-05 01:01:40

2

笨文件上傳可選...完美的作品.... :)

---------- ---------控制器

function file() 
{ 
$this->load->view('includes/template', $data); 
} 

function valid_file() 
{ 
$this->form_validation->set_rules('userfile', 'File', 'trim|xss_clean'); 

if ($this->form_validation->run()==FALSE) 
{ 
    $this->file(); 
} 
else 
{ 
    $config['upload_path'] = './documents/'; 
    $config['allowed_types'] = 'gif|jpg|png|docx|doc|txt|rtf'; 
    $config['max_size']  = '1000'; 
    $config['max_width']  = '1024'; 
    $config['max_height'] = '768'; 

    $this->load->library('upload', $config); 

    if (!$this->upload->do_upload('userfile',FALSE)) 
    { 
    $this->form_validation->set_message('checkdoc', $data['error'] = $this->upload->display_errors()); 

    if($_FILES['userfile']['error'] != 4) 
    { 
     return false; 
    } 

    } 
    else 
    { 
    return true; 
    } 
} 

我只是用$_FILES['userfile']['error'] != 4使用此線,使得它可選,

if($_FILES['userfile']['error'] != 4) 
{ 
return false; 
} 

$_FILES['userfile']['error'] != 4 is for file required to upload. 

你u能使其unneccessory,那麼它會通過此錯誤所需的文件和 與其他類型的錯誤,如果任何的偉大工程通過使用回報虛假, 希望工程ü....

+2

你能解釋一下'4'的意義嗎?你從哪裏得到這個信息? – Sparky 2016-07-26 19:15:33

0

使用此代碼在調用控制器do_upload()

if (is_uploaded_file($_FILES['field_name']['tmp_name'])) { 
    // your code here 
} 
012前