Форма не загружает файл в codeigniter 2.0

#php #codeigniter-2

#php #codeigniter-2

Вопрос:

Я перепробовал все возможные методы, но безуспешно. Просто пытаюсь загрузить файл с помощью code igniter, но не исправляю ошибку, которую я получаю

 <pre>Array
(
 [error] => <p>You did not select a file to upload.</p>
)
  

Я пробовал использовать обычный php на моем локальном хостинге, который работает нормально, но не работает с code igniter. Это просто не выбор файла. Если я проверю с помощью var_dump($_FILES['fileToUpload']); , результат будет array(0) .

Код формы

 <form id="contact_form" enctype="multipart/form-data" method="post" action="<?php echo base_url();?>Main/do_upload">
 <input type="file" class="form-control" name="fileToUpload" id="fileToUpload">
</form>
  

Код контроллера

 $config = array(
    'upload_path' => "./uploads/",
    'allowed_types' => "gif|jpg|png|jpeg|pdf",
    'overwrite' => TRUE,
    'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
    'max_height' => "768",
    'max_width' => "1024"
);

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

if($this->upload->do_upload())
{
    $data = array('upload_data' => $this->upload->data());
    echo "<pre>";
    var_dump($data);
    // $this->load->view('upload_success',$data);
}else{
    $error = array('error' => $this->upload->display_errors()); 
    echo "<pre>";
    print_r($error);
}
  

конфигурация

 $autoload['libraries'] = array("session", "email", "database");
$autoload['helper'] = array("url", "file", "form");
  

Есть ли что-нибудь, о чем я не знаю? Пожалуйста, укажите, я застрял здесь.

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

1. можете ли вы попробовать site_url() вместо base_url и использовать имя userfile вместо fileToUpload? и выполните echo var_dump($_FILES);die; перед массивом $ config и вставьте это содержимое сюда

Ответ №1:

Вы пропустили имя входного файла в do_upload() :

Использовать :

 if(!$this->upload->do_upload('image_file'))
{
   //$this->upload->display_errors()
}
else
{
   //$this->upload->data()
}
  

Вместо:

 if($this->upload->do_upload())
  

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

1. Я пробовал это раньше. Как я сказал в своем вопросе » Если я проверю с помощью var_dump($_FILES[‘fileToUpload’]); результатом будет array (0) «.

2. Если я сделаю это способом codeigniter, я получу эту ошибку <pre>Array ( [error] => <p> Вы не выбрали файл для загрузки. </p> ) Я делаю это с помощью if($this-> upload->do_upload(«fileToUpload»))

3. echo $_FILES[‘fileToUpload’][tmp_name]; и проверьте имя файла

Ответ №2:

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

 public function do_upload(){
        $config = array(
            'upload_path' => "assets/uploads/",
            'allowed_types' => "gif|jpg|png|jpeg|pdf",
            'overwrite' => TRUE,
            'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
            'max_height' => "768",
            'max_width' => "1024"
        );
        $this->load->library('upload', $config);
        $this->upload->initialize($config);

        if($this->upload->do_upload('fileToUpload'))
        {
            $data = array('upload_data' => $this->upload->data());
            echo "<pre>";
            var_dump($data);
            // $this->load->view('upload_success',$data);
        }else{
            $error = array('error' => $this->upload->display_errors()); 
            echo "<pre>";
            print_r($error);
        }
    }
  

Передайте имя вашего файла для загрузки в $this->upload->do_upload('fileToUpload')