Проблема с загрузкой файла

//views/myproject/testupload.php

  <a class = "btn pull-right btn btn-primary"
       href = "<?= site_url("myproject/upload/") ?>"><?= lang('upload') ?></a>

//views/myproject/upload.php

<?php echo form_open_multipart(site_url('myproject/do_upload'));?>
<?=form_line('', form_upload('userfile', $this->form_validation->set_value('userfile')));?>
<?=form_submit('upload', lang('action_upload'), 'class = "btn btn-primary"');?>
<?php echo form_close();?>

//Controller/myproject/test.php

public function upload()
{
    $this->output->view('analytics/kysim/upload');
}

public function do_upload()
{
    $config['upload_path']          = 'C:/test/';
    $config['allowed_types']        = 'txt';
    $this->load->library('upload', $config);
    $name_file = $_FILES['userfile']['name'];

    if ( ! $this->upload->do_upload($name_file))
    {

        $error = array('error' => $this->upload->display_errors());
        var_dump($error);
        die();
        //$this->load->view('upload', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());
        var_dump($data);
        die();
        //$this->load->view('success', $data);
    }
}

Я не могу загрузить файл в указанное место (C: // test) .var_dump ($ name_file) отображает имя загруженного файла. $ this-> upload-> do_upload ($ name_file) возвращает false, и поэтому var_dump ($ error) отображает error message "error" => "<p>You did not select a file to upload.</p><p>You did not select a file to upload.</p>""

Приветствуется любая помощь по загрузке файла в указанное место (C: // test).

$ config ['upload_path'] = 'C: \ test \' должно быть.

Sanjay Kumar 12.07.2018 11:02

@Sanjay, что не работает

Programmer 12.07.2018 11:05

Есть ли у Apache доступ к C:/test, я бы в этом сомневался. Попробуйте загрузить в папку в корневом каталоге документов, это сработает?

RiggsFolly 12.07.2018 11:12

Хотя "<p>You did not select a file to upload.</p> звучит так, как будто вы вводите неверное имя файла

RiggsFolly 12.07.2018 11:14

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

Pradeep 17.07.2018 14:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Надеюсь, что это поможет вам :

Примечание: убедитесь, что на вашем приводе c есть папка test, которая, в свою очередь, имеет разрешение writable

Ваш метод do_upload должен быть таким:

public function do_upload()
{
    $config['upload_path']  = 'C:\test\\';
    $config['allowed_types'] = 'txt';
    $this->load->library('upload', $config);
    if (! empty($_FILES['userfile']['name']))
    {
        if ( ! $this->upload->do_upload('userfile'))
        {
            $error = array('error' => $this->upload->display_errors());
            var_dump($error);
            die();
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
            var_dump($data);
            die();
        }
    } 
}

Ваша форма должна быть такой:

<?php 
  echo form_open_multipart('myproject/do_upload');
  echo form_line('', form_upload('userfile', $this->form_validation->set_value('userfile')));
  echo form_submit('upload', lang('action_upload'), 'class = "btn btn-primary"');
  echo form_close();
?>

Подробнее: https://www.codeigniter.com/user_guide/libraries/file_uploading.html

мой ответ помог тебе?

Pradeep 12.07.2018 17:37

@pradeep Проблема была с путем загрузки ... я исправил ее, используя временную систему $ config ['upload_path'] = sys_get_temp_dir ();

Programmer 17.07.2018 14:57

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

Pradeep 17.07.2018 15:00

Этот учебник может помочь вам: - https://www.formget.com/codeigniter-upload-image/

Другие вопросы по теме