Показать ошибку: путь загрузки не является действительным - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь загрузить изображение с помощью php codeigniter, но отображается сообщение «Путь загрузки не соответствует действительности».

Это действие выполняется на сервере xampp и в окне 10

public function do_upload($username) {
    $config = array(
        'upload_path' => "./assets/images/",
        'allowed_types' => "gif|jpg|png|jpeg",
        'overwrite' => TRUE,
        'max_size' => "2048000", 
        'max_height' => "768",
        'max_width' => "1024"
    );
    $this->load->library('upload', $config);
    if ($this->upload->do_upload()) {
        $data = array('upload_data' => $this->upload->data());
        print_r($data);
    } else {
        $error = array('error' => $this->upload->display_errors());
        print_r($error);
    }
}

Этот код я использовал, я проверял много раз, но я не нашел ошибку Какая ошибка в коде, Если я использую этот же код в другом проекте, он будет работать, но не в основном проекте. Пожалуйста, помогите, заранее спасибо

Ответы [ 3 ]

0 голосов
/ 05 апреля 2019

сначала вы должны проверить, что вы создали папку assets / images в корневой директории, потому что в конфиге этот путь определен

$config = [
         'upload_path' => "./assets/images/",
        'allowed_types' => "gif|jpg|png|jpeg",
        'overwrite' => TRUE,
        'max_size' => "2048000", 
        'max_height' => "768",
        'max_width' => "1024"
  ];
  $this->load->library('upload',$config);
  $this->load->library('form_validation');
  $this->form_validation->set_error_delimiters('<div style="color:red;" class="error">', '</div>');
  if$this->upload->do_upload()){
    $img = $this->upload->data();
    $img_name = base_url('uploads/'.$img['file_name']);
    $data = $this->input->post();
    $data['image_path'] = $img_name;
    unset($data['submit']);
    return $this->flash_message(
            $this->articlemodel->add_article($data),
            'Article added sucessfully',
            'Article added to failed'
    );   


   }
   else
   {
    $upload_error = $this->upload->display_errors;

   }
0 голосов
/ 05 апреля 2019

Очень просто решить

  1. Если каталог внутри папки приложения

    application -> assets -> images 
    
    'upload_path' => APPPATH. 'assets/images/';
    
  2. Если каталог находится вне папки приложения

    root folder -> assets -> images
    
    'upload_path' => FCPATH. 'assets/images/';
    
0 голосов
/ 05 апреля 2019

В CodeIgniter вы всегда должны пытаться использовать константу APPPATH, чтобы найти папку приложения.

APPPATH является лучшим, поскольку он динамически извлекает правильную структуру каталогов файловой системы независимо от того, в какой операционной системе вы находитесь. Это гарантирует, что все пути к файлам в вашем коде будут правильными.

Однако, если вы не пытаетесь добраться до папки Application. Вы можете использовать константу FCPATH, которая динамически указывает на фронт-контроллер вашего приложения.

Вы получаете эту ошибку, потому что путь к вашей папке / assets / images недействителен. Вам необходимо убедиться, что путь правильный.

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