Загрузка файла по произвольному пути в codeigniter - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь загрузить файл, но постоянно получаю сообщение «Путь к загрузке не соответствует действительности». ошибка. Проблема в том, что путь, по которому я пытаюсь загрузить файл, находится в каталоге рядом с текущим. Текущая структура папок выглядит следующим образом:

application
assets
 - uploads
  - profile_pictures
Admin
 - application
 - assets

Я пытаюсь загрузить изображение из приложения администратора в папку assets / uploads / profile_pictures, которая находится в главном каталоге приложения root. Единственная проблема заключается в исправлении пути.

Вот код из контроллера:

public function update_image(){

  $user_id= $this->input->post('user_id');
  //$user_id=$this->input->post('user_id');
  $query5 = $this->db->get_where('user_details', array('user_id' => $user_id));
  $name_user = $query5->row()->name;
  $name='profile_image_edit';

    $user_img=$this->function->upload_profile_images(array($name), $name_user);
    var_dump($user_img);

    $this->db->set("image_path",$user_img);
    $this->db->where("user_id",$user_id);
    $update = $this->db->update("users");
    if($update)
    {
      echo 'Profile Image Updated.';
    }
    else
    {
      echo 'Profile Image Update Failed.';
    }
}

А вот код из модели:

public function upload_profile_images($names, $username)
{
       $config['upload_path']='./assets/uploads/profile_pictures';
       $config['allowed_types']='jpeg|jpg|png';
             $path = $_FILES[$names[0]]['name'];
       var_dump($names[0]);
       var_dump($path);
       $ste_d =date('YmdHis') . gettimeofday()['usec'];
                    $newName = str_replace("",'',str_replace("",'',"$ste_d.str_replace(" ",'_',str_replace(".","",pathinfo($path, PATHINFO_FILENAME)))."_muddy.")).pathinfo($path, PATHINFO_EXTENSION);
                  $config['file_name'] = $username ."_". $newName;
            $this->upload->initialize($config);
            $this->load->library('upload', $config['upload_path']);

     $check = true;
     for($i = 0; $i < count($names) && $check; $i++)
     {
       if ( ! $this->upload->do_upload($names[$i]))
            {
                 $path='./assets/uploads/profile_pictures';
          $this->load->helper("file");
          $error = array('error' => $this->upload->display_errors());
          var_dump($error);
          // delete_files($path, true);
          $check = false;
                 return false;
       }
            else
            {
          $data = array('upload_data' => $this->upload->data());
          $check = true;

          return 'assets/uploads/profile_pictures'.'/'.$data['upload_data']['file_name'];
       }
     }
 }

Как установить собственный путь, чтобы файл всегда сохранялся в нужном каталоге assets / uploads / profile_pictures из приложения Admin. Спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...