Сведения о вопросе

Killer

19:49, 21st July, 2020

Как загрузить файл на Codeigniter. How to upload a file to Codeigniter

Просмотров: 462   Ответов: 1

Не получается загрузить фото на сайте. Опишите как всё должно происходить.



  Сведения об ответе

$DOLLAR

19:54, 21st July, 2020

 

Всё, что нам нужно:

  • создать Upload.php в папке Controllers

  • создать Upload_view.php в папке Views

 

В файле Upload_view.php напишите следующее:

<?php echo form_open_multipart('upload/do_upload');?>

<div class='file-input'>
  <input type='file' name="userfile" required="required">
  <span class='button'>Выбрать</span>
  <span class='label' data-js-label>Не выбрано</label>
</div>
<div>
	<button type="submit" value="upload">Ок</button>
</div>
</form>


<!-- пишем Javascript код для получения файла с вашего устройства.-->
 <script type="text/javascript">

var inputs = document.querySelectorAll('.file-input')

for (var i = 0, len = inputs.length; i < len; i++) {
  customInput(inputs[i])
}

function customInput (el) {
  const fileInput = el.querySelector('[type="file"]')
  const label = el.querySelector('[data-js-label]')
  
  fileInput.onchange =
  fileInput.onmouseout = function () {
    if (!fileInput.value) return
    
    var value = fileInput.value.replace(/^.*[\\\/]/, '')
    el.className += ' -chosen'
    label.innerText = value
  }
}
</script>

 

В файле Upload.php напишите следующее:

class Upload extends CI_Controller {

        public function __construct()
        {
                parent::__construct();
                $this->load->helper(array('form', 'url'));
        }

        public function index()
        {
                $this->load->view('upload_view');
        }

        public function do_upload()
        {
                $config['upload_path']          = './assets/uploads/';
                $config['allowed_types']        = 'gif|jpg|png|';
                $config['max_size']             = 10000;
                $config['max_width']            = 3000;
                $config['max_height']           = 3000;

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

                if ( ! $this->upload->do_upload('userfile')){
                   echo "Ошибка загрузки файла";
                   die();
                }
                else
                {
                    $data = array('upload_data' => $this->upload->data());
                    echo $data['upload_data']['file_name']; // мы получаем имя файла
                    die(); 
                  
                }
        }
}

 

 

Нужно дописать массив с настройками к вашему файлу с именем $config. Если файл не соответствует требованиям $config, то файл не загрузится.

  • $config['upload_path'] - имя папки, в которую вы загружаете свой файл.

  • $config['allowed_types'] - допустимые расширения

  • $config['max_size'] - максимальный размер файла

  • $config['max_width'] - максимальная допустимая ширина

  • $config['max_height'] - максимальная допустимая высота

 


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться