2013-11-25 19 views
0

我查看形式多上傳兩個文件笨示值誤差

<h3>Upload Submission File(doc,docx,pdf,cda,rtf,txt)</h3> 
<?php echo form_error('fileToUpload'); ?> 
<p>      
<input type="file" name="fileToUpload" id="fileToUpload" title="Upload Submission File" 
     accept="application/pdf, .doc, .docx, .txt, application/msword, .rtf, .cda"/> 
</p> 

<h3>Upload Additional File (gif,jpeg,png,tiff,pdf)</h3> 

<?php echo form_error('additionalUpload'); ?> 
<p>      
<input type="file" name="additionalUpload" id="additionalUpload" title="Upload Additional File" 
     accept="image/gif, image/jpeg, image/png, image/x-tiff, application/pdf" /> 
</p> 

我位指示

function submit_article() { 
    $this->load->helper(array('form', 'url')); 
    $this->load->library('form_validation'); 
    $this->form_validation->set_error_delimiters('<p style="color:red">', '<br/></p>'); 

    $my_rules = array(
     array(
      'field' => 'fileToUpload', 
      'label' => 'Submission File', 
      'rules' => 'callback_is_proper_file' 
     ), 
     array(
      'field' => 'additionalUpload', 
      'label' => 'Additional File', 
      'rules' => 'callback_is_image' 
     ) 
    ); 

    $this->form_validation->set_rules($my_rules); 
    if ($this->form_validation->run() == FALSE) { 
     //ERROR 
     $data['title'] = ucfirst('submit Article'); 
     $this->load->view('templates/header', $data); 
     $this->load->view('submit_article', $data); 
     $this->load->view('templates/footer', $data); 
    } else { 
     //SUCCESS 

     $data['title'] = ucfirst('article Submitted'); 
     $this->load->view('templates/header', $data); 
     $this->load->view('forms_view/submit_article_success', $data); 
     $this->load->view('templates/footer', $data); 
    } 
} 



function is_image() { 
    if ($_FILES['additionalUpload']['tmp_name'] != '') { 

     $config1['upload_path'] = './public/uploads/'; 
     $config1['allowed_types'] = 'gif|jpg|jpeg|png|pdf|tiff'; 
     $config1['max_size'] = '2048'; 
     $config1['max_width'] = '0'; 
     $config1['max_height'] = '0'; 
     $config1['remove_spaces'] = true; 
     $config1['overwrite'] = true; 

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

     if (!$this->upload->do_upload('additionalUpload')) { 
      $this->form_validation->set_message('is_image', $this->upload->display_errors('<p style="color:red">', '<br/></p>')); 
      return FALSE; 
     } else { 
      $this->upload->data(); 
      return TRUE; 
     } 
    } 
} 

function is_proper_file() { 
    if ($_FILES['fileToUpload']['tmp_name'] != '') { 
     $config['upload_path'] = './public/uploads/'; 
     $config['allowed_types'] = 'doc|docx|pdf|cda|rtf|txt'; 
     $config['max_size'] = '1024*10'; 
     $config['max_width'] = '0'; 
     $config['max_height'] = '0'; 
     $config['remove_spaces'] = true; 
     $config['overwrite'] = true; 

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

     if (!$this->upload->do_upload('fileToUpload')) { 
      $this->form_validation->set_message('is_proper_file', $this->upload->display_errors('<p style="color:red">', '<br/></p>')); 
      return FALSE; 
     } else { 
      $this->upload->data(); 
      return TRUE; 
     } 
    } else { 
     $this->form_validation->set_message('is_proper_file', '<p style="color:red">Please select a file to upload.<br/></p>'); 
     return FALSE; 
    } 
} 

的additionalUpload場不需要場和filetoupload爲必填字段。 當我通過填寫除了additionalUpload以外的所有細節來提交表單時,我的代碼對我來說效果很好,但是當我使用additionalUpload和其他詳細信息提交表單時,它顯示錯誤「您正試圖上傳的文件類型是不允許的。」爲額外的上傳領域..

換句話說,當我提交表單與一個文件是filetoupload這是需要它的作品...當我提交表單與文件filetoUpload和additionalUpload然後它的顯示我錯誤的額外上傳字段「您正在嘗試上傳的文件類型是不允許的。」,當我只提交表單只有addtionalupload文件它做上傳在我的上傳文件夾,但是當我提交所有領域它向我顯示錯誤「您嘗試上傳的文件類型不被允許。」對於提交的額外上傳..

由於事先請幫助任何人

回答

0
$this->load->library('upload'); 
$this->upload->initialize($config1); 

我需要調用它上面等,其中,因爲我已經以這種方式稱之爲:

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