2010-07-19 105 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前