2017-04-20 77 views
0

好吧,首先我需要知道上傳字段是否爲空。Codeigniter上傳庫說我沒有上傳文件,即使我做了

如果上傳字段爲空,那麼數據將上傳到數據庫而沒有上傳文件,但是如果用戶有像圖片一樣顯示的內容,那麼它會將文件上傳到數據庫的文件夾和信息。

但我嘗試了一切,它仍然說「你沒有選擇一個文件」。

請檢查我的代碼:

function submit_ticket() 
{ 
    $timezone = "Asia/Manila"; 
    date_default_timezone_set($timezone); 

    $latestTicket = $this->TicketSubmit_m->last_ticket(); 

    $file_array = array(); 

    if(isset($_FILES) && @$_FILES['file_upload']['error'] != '4'){ 


     $images = $_FILES; 
     $image = count($_FILES['file_upload']['name']); 
     for($i=0; $i < $image; $i++){ 
      $_FILES['file_upload']['name'] = $images['file_upload']['name'][$i]; 
      $_FILES['file_upload']['type'] = $images['file_upload']['type'][$i]; 
      $_FILES['file_upload']['error'] = $images['file_upload']['error'][$i]; 
      $_FILES['file_upload']['size'] = $images['file_upload']['size'][$i]; 

      $this->load->library('upload'); 
      $this->upload->initialize($this->set_upload_options()); 
      $up = $this->upload->do_upload('file_upload'); 
      if($up === TRUE){ 
       $file_array[] =[ 
        'cTicketNo' => $latestTicket, 
        'cImageID' => $latestTicket, 
        'ImagePath' => base_url() . "assets/uploads/".$_FILES['file_upload']['name'] 
       ]; 

      }else{ 
       $error = array('error' => $this->upload->display_errors()); 
       $this->session->set_flashdata('msg','<span class="login-error">'.$error['error'].'</span>'); 
       redirect($_SERVER['HTTP_REFERER']); 
      } 
     } 
     $this->TicketSubmit_m->submit_ticket(); 
     $this->TicketSubmit_m->update_ticket_number(); 
     $this->TicketSubmit_m->add_image($file_array); 
     $this->session->set_flashdata('msg','<span class="login-error">Ticket Successful!</span>'); 
     redirect($_SERVER['HTTP_REFERER']); 
    }else{ 

     $this->TicketSubmit_m->submit_ticket(); 
     $this->TicketSubmit_m->update_ticket_number();   
     $this->session->set_flashdata('msg','<span class="login-error">Ticket Successful! No files uploaded</span>'); 
     redirect($_SERVER['HTTP_REFERER']); 
    } 

} 

上傳選項

function set_upload_options(){ 
    $config = array(); 
    $config['upload_path'] = './assets/uploads/'; 
    $config['allowed_types'] = 'gif|png|jpg|csv|xls|xlsx|doc|odf|odf|odp|odt|bmp'; 
    $config['max_size'] = '1000000'; 
    $config['overwrite'] = FALSE; 
    return $config; 
} 

HTML

<form action="<?php echo base_url();?>TicketSubmit/submit_ticket" method="POST" class="form-horizontal" enctype="multipart/form-data"> 
     <div class="control-group"> 
      <label class="control-label">Department :</label> 
      <div class="controls"> 
      <span><?php echo $this->session->userdata['vDepartment'];?></span> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">Name :</label> 
      <div class="controls"> 
      <span><?php echo $this->session->userdata['vName'];?></span> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">Username :</label> 
      <div class="controls"> 
      <span><?php echo $this->session->userdata['cUsername'];?></span> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">Category :</label> 
      <div class="controls"> 
      <select name="vCategory"> 
       <option>Hardware</option> 
       <option>Software</option> 
       <option>Network</option> 
      </select> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">Concern :</label> 
      <div class="controls"> 
      <textarea class="span11" name="vConcern" required ></textarea> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">Severity :</label> 
      <div class="controls"> 
      <select name="vLevel"> 
       <option>Low</option> 
       <option>Medium</option> 
       <option>High</option> 
      </select> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">Contact Person :</label> 
      <div class="controls"> 
      <input type="text" class="span11" name="vCaller" required /> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">File upload :</label> 
      <div class="controls"> 
      <input type="file" name="file_upload[]" multiple /> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label"></label> 
      <div class="controls"> 
      <?php echo $this->session->flashdata('msg');?> 
      </div> 
     </div> 
     <div class="form-actions"> 
      <button type="submit" class="btn btn-success">Send</button> 
     </div> 
     </form> 
+0

分享你的HTML表單代碼 –

+0

嗨,我編輯和共享的形式 – TheTruth

回答

1

你寫ENCTYPE = 「的multipart/form-data的」 中你的表單與method =「p ost「?

+0

是的,我做到了,我給大家介紹的形式 – TheTruth

+0

我共享形成 – TheTruth

0

我不敢相信答案如此之快。

我缺少一個文件類型,這是該行:

$_FILES['file_upload']['tmp_name'] = $images['file_upload']['tmp_name'][$i];