2014-10-20 3 views
0

Ситуация: появилась новостная лента, такая как система, где вы можете добавить изображение за сообщение. Эти сообщения также могут быть обновлены. При обновлении значение изображения в базе данных должно оставаться неизменным, если изображение не будет изменено.Проверьте, установлено ли поле для файла codeigniter

В настоящее время с помощью этого в моем контроллере:

  $this->load->library('upload'); //initialize 
      if (isset($_FILES['userfile']) && is_uploaded_file($_FILES['userfile']['tmp_name'])) { 
       $this->upload->initialize($config); 
       $this->upload->do_upload('userfile'); 
       $imageData = $this->upload->data(); 
       $data['front_image'] = $imageData['file_name']; 
      } 

Но как вы можете догадывались это не работает. Любые предложения?

ответ

0
  $this->load->library('upload'); //initialize 
     if ($_FILES['userfile'][size] !=0 && is_uploaded_file($_FILES['userfile']['tmp_name'])) { 
      $this->upload->initialize($config); 
      $this->upload->do_upload('userfile'); 
      $imageData = $this->upload->data(); 
      $data['front_image'] = $imageData['file_name']; 
     } 

cheking aagainst размер файла решил проблему.

0

Возможно, вы выполняете больше работы, в которой вы нуждаетесь. Я не использовал CI через некоторое время, но я уверен, что вы можете просто проверить результат $this->upload->do_upload(). Я считаю, что класс Upload проверит наличие файла для вас и вернет значение false (< - не слово).

$this->load->library('upload', $config); 
// or $this->upload->initialize($config);// if you're autoloading 

if ($this->upload->do_upload()) { 
    $imageData = $this->upload->data(); 
    $data['front_image'] = $imageData['file_name']; 
} else { 
    echo $this->upload->display_errors(); 
} 

Кроме того, если вы в рамках (CodeIgniter, Laravel и т.д.), вы действительно не должны иметь, чтобы проверить глобальный PHP вары. Большая часть этого материала завернута для вас.

Смежные вопросы