Файл PDF не загружается

#php #codeigniter #file-upload #codeigniter-3

#php #codeigniter #файл-загрузить #codeigniter-3

Вопрос:

У меня есть поле ввода с таким же именем. pdf [] Я вставляю и загружаю его в базу данных, он отлично вставляется в базу данных. но не загружается в папку uploads существует проблема с do_upload();

   $items=$_FILES['pdf']['name']; 
  $count = count($items);
  $lstid=$this->FetchData->getLastInserted();
  for($i=0; $i<=$count-1; $i  ){
      //echo $img[$i];
      $img = $_FILES['pdf']['name'][$i];
      $timezone = new DateTimeZone('Asia/Calcutta');
      $datetime = new DateTime("now", $timezone);
      $date = $datetime->format("D_M_d_Y_H_i_s");
      $ext = pathinfo($img, PATHINFO_EXTENSION);
      $new_name=$i.'_'.$state_id.'_'.$date;
      if(!empty($img)){
         $imagenamefordatabase = $new_name.'.'.$ext;
      }
      else{
         $imagenamefordatabase ='';
      }
      $config['upload_path'] = 'uploads/';
      // set the filter image types
      $config['allowed_types'] = 'pdf';
      $config['file_name'] = $new_name;
      //load the upload library
      $this->load->library('upload', $config);
      $this->upload->initialize($config);
      $this->upload->set_allowed_types('*');
      $data['upload_data'] = '';
      //if not successful, set the error message
      if (!$this->upload->do_upload('pdf[]')) {
         $data = array('Success' => $this->upload->display_errors());
      } 
      else { 
         //else, set the success message
         $data = array('Success' => "Upload success!");
         $data['upload_data'] = $this->upload->data();
      }
      $sampleresult = array(
        'Report_Print_Data_Id' => $lstid,

        'Sample_Report' => $imagenamefordatabase
      );

      $this->AddData->addReportResult($sampleresult);
  }
  

Комментарии:

1. Пожалуйста, поделитесь $this->upload->do_upload также определением метода.

2. @jeroen это был мой правильный код. я должен загрузить несколько файлов с одинаковыми именами входных данных. pdf [] я получаю расширения из-за сохранения файла с другим именем. после я использую библиотеку загрузки code Igniter. затем сохраняем имя в базе данных MySQL.

3. @NareshKumarNakka $this-> upload->do_upload() является библиотекой codeigniter по умолчанию.

4. вам нужно использовать вот так $this-> upload->do_upload(‘pdf’);

5. да, я использовал, но не загружал. когда у меня есть одно входное имя. pdf тогда он работает, когда я меняю его на pdf [] , а затем не загружаю. возникает ошибка Вы не выбрали файл для загрузки.

Ответ №1:

Измените имя файла в качестве пользовательского файла.

настройте размер файла в контроллере и попробуйте.

если какая-либо ошибка, пожалуйста, покажите.

Комментарии:

1. Спасибо за ответ. Я решил ответ с помощью. Объявляем переменную выше для цикла. files=$_FILE; и внутри цикла for __ $_FILES[‘pdf’][‘name’]=$files[‘pdf’][‘name’][$i];__ и do_upload(‘pdf’);

Ответ №2:

Вы должны передавать только имя поля без больших скобок [] . Обновите следующую часть вашего кода.

 if (!$this->upload->do_upload('pdf')) {
     $data = array('Success' => $this->upload->display_errors());
} 
else 
{ 
     //else, set the success message
     $data = array('Success' => "Upload success!");
     $data['upload_data'] = $this->upload->data();
}