Путь загрузки в Codeigniter возвращает «путь загрузки, кажется, недействителен»

Теперь я пробовал большинство исправлений, которые я прочитал, большинство из них упоминает о APPPATH, base_url (), реальном пути и т. Д., Но я действительно не знаю, почему все они не работали, что работало меня это то, что я использовал фактический путь, а не URL-адрес, но тот, у кого есть C: \ xampp \ htdocs .. blah blah blah .. теперь я прочитал один поток, что URL-адрес и каталог – это не одно и то же. и upload_path принимает только путь к каталогу, и я имею в виду фактическое местоположение папки uploads на сервере, а не URL. Теперь мой вопрос заключается в том, почему APPPATH не работает. как то, что я знаю, это фактический путь к каталогу. но когда я пытался отобразить, он возвращает только «../applicaiton/», что действительно лучший путь, который будет использоваться в $ config ['upload_path'] на upload.php, особенно при развертывании его на фактическом сервере. действительно неудобно найти путь к каталогу вашей папки для загрузки, ПРИМЕЧАНИЕ im не использовать метод initialize (), я помещаю свои конфиги в config / upload.php

редактирует:

У меня это есть в отдельном файле … upload.php

<?php $config['upload_path'] ='./uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '5000'; $config['max_width'] = '1600'; $config['max_height'] = '1200'; 

и это мой контроллер

  if($this->upload->do_upload('image')) { //Did something here } else { //Did something for errors like display_errors() } 

и конечный результат показывает, что «путь загрузки не является допустимым», и я пробовал эту строку кода также

Испытание 1:

 $config['upload_path'] ='./uploads/'; 

Испытание 2:

 $config['upload_path'] ='uploads/'; 

Испытание 3:

 $config['upload_path'] ='/admin/assets/uploads/'; 

Испытание 4:

 $config['upload_path'] ='./admin/assets/uploads/'; 

Испытание 5:

 $config['upload_path'] ='admin/assets/uploads/'; 

единственное, что работает, это

  $config['upload_path'] ='C:\xampp\htdocs\practice\admin.abcgencon\admin\assets\uploads''; 

и использование последней части в качестве пути является бесполезным, поэтому я пробовал также APPPATH но он не работает, и он также отображает «../application» ..

как @cryptic сказал, что я опубликовал этот фрагмент кода.

Solutions Collecting From Web of "Путь загрузки в Codeigniter возвращает «путь загрузки, кажется, недействителен»"

Вопрос: вы пробовали realpath и APPPATH отдельно?

В Codeigniter APPPATH указывает на папку приложения

Пример : (поместите свою папку за пределы папки приложения, просто говоря, если вы этого не сделали) позволяет сказать, что папка te, куда мы хотим поместить файлы, называемые изображениями

Итак, что вам нужно сделать, это комбинировать realpath( ) и APPPATH

 $image_path = realpath(APPPATH . '../images'); 

и передать его в вашу конфигурацию

 $config['upload_path'] = $image_path; 

Таким образом, загрузка файлов выполняется в CI

 $cat_image_name = $_FILES["cat_image"]["name"] ; //file uploading params $config['upload_path'] = './uploaded_files/categories'; $config['allowed_types'] = 'gif|jpg|png'; $config['file_name'] = $image_id."_ipad"; $config['remove_spaces'] = TRUE; //Loading Library - File Uploading $this->load->library('upload', $config); //Upload the image(Ipad) if (!empty($cat_image_name)) { $this->upload->do_upload('cat_image'); $data = array('upload_data' => $this->upload->data()); $category_image_ipad = $data['upload_data']['file_name']; $img_extension = $data['upload_data']['file_ext']; } 

попробуй это

 $config['upload_path'] = '../uploads/; 

Он работает очень хорошо для меня

Создайте каталог загрузки файлов, скажем, загрузите его вне каталога приложения или в корневой каталог CI и установите путь загрузки следующим образом:

 $config['upload_path'] = realpath(FCPATH.'uploads'); 

FCPATH: путь к переднему контроллеру, где существует index.php (корень CI)

Вышеприведенный код работает как на сервере, так и на локальном.

используй это:

 $config['upload_path'] = $_SERVER['DOCUMENT_ROOT']."/uploads/"; //$this->config->item('upload_path'); 

Это очень просто:

Просто скопируйте все $ config в новый php-файл с именем upload.php и поместите его в папку cofig.

Путь будет работать нормально.

Вот содержимое файла upload.php:

 <?php $config['upload_path'] = site_url().'uploads'; $config['allowed_types'] = 'gif|jpg|png|jpeg|html|pdf'; $config['max_size'] = 0; $config['max_width'] = 0; $config['max_height'] = 0; $config['file_ext_tolower'] = TRUE; $config['overwrite'] = FALSE; $config['max_filename'] = 0; $config['encrypt_name'] = TRUE; $config['remove_spaces'] = TRUE; $config['detect_mime'] = TRUE; $config['mod_mime_fix'] = TRUE; ?> 

Но, пожалуйста, сохраняйте данные $ config в контроллере upload_file. Например:

 public function do_upload(){ $config['upload_path'] = 'uploads'; $config['allowed_types'] = 'gif|jpg|png|jpeg|html|pdf'; $config['max_size'] = 0; $config['max_width'] = 0; $config['max_height'] = 0; $config['file_ext_tolower'] = TRUE; $config['overwrite'] = FALSE; $config['max_filename'] = 0; $config['encrypt_name'] = TRUE; $config['remove_spaces'] = TRUE; $config['detect_mime'] = TRUE; $config['mod_mime_fix'] = TRUE; //Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class: $this->upload->initialize($config); if (!$this->upload->do_upload('userfile')) { $error = array('error' => $this->upload->display_errors()); $this->load->view('upload_form', $error); } else { $data = array('upload_data' => $this->upload->data()); $this->load->view('upload_success', $data); } } 

Это просто…