Вопрос:

codeigniter 3 - Вы не выбрали файл для загрузки

codeigniter file-upload

15754 просмотра

1 ответ

990 Репутация автора

Post_plot.php (это моя форма просмотра)

<form action="http://localhost:8080/ci/admin/plot/do_upload" enctype="multipart/form-data" method="post">

<input type="text" name="property_title" value=""  />

<input type="file" name="img" id="plot-img" value=""  />

<input type="submit" name="submit" value="Submit" />

</form> 

У меня есть длинная форма с возможностью загрузки изображений.

Я использую функцию do_upload для загрузки файла

Я получаю следующую ошибку

Array ( [name] => a.jpg [type] => image/jpeg [tmp_name] => C:\xampp\tmp\phpBD75.tmp [error] => 0 [size] => 132277 ) Array ( [error] =>
You did not select a file to upload.

)

Контроллер Plot.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Plot extends CI_Controller {


    public function __construct()
    {
        parent::__construct();
        $this->load->library('Admin_layout');
        $this->load->model('admin/plot_model');
        $this->config->load('plot_rules');
        $this->output->enable_profiler(TRUE);
    }


    public function do_upload()
    {
            $config['upload_path']          = '../images/';
            $config['allowed_types']        = 'gif|jpg|png';
            $config['max_size']             = 100;
            $config['max_width']            = 1024;
            $config['max_height']           = 768;

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

            if ( ! $this->upload->do_upload($img))
            {
                    $error = array('error' => $this->upload->display_errors());

                    print_r($error);
            }
            else
            {
                    $data = array('upload_data' => $this->upload->data());

                    //$this->load->view('upload_success', $data);
                    print_r($data);
            }
    }//do_upload


}//class

Должен ли я передать какие-либо параметры в функции do_upload?

Автор: Chaitanya K Источник Размещён: 29.04.2015 02:08

Ответы (1)


4 плюса

9263 Репутация автора

Решение

В этой части попробуйте поставить

$img = "img" // input name="img"
$this->upload->do_upload($img)

Если нет, попробуйте / протестируйте с формой action="http://localhost:8080/ci/admin/plot/do_upload"

Codeigniter 2 Руководство пользователя http://www.codeigniter.com/userguide2/libraries/file_uploading.html

Codeigniter 3 Руководство пользователя http://www.codeigniter.com/user_guide/libraries/file_uploading.html?highlight=file%20upload

Возможно, вам придется установить некоторые маршруты в вашем route.php

Код

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Plot extends CI_Controller {

public function __construct()
{
    parent::__construct();
    $this->load->library('Admin_layout');
    $this->load->model('admin/plot_model');
    $this->config->load('plot_rules');
    $this->output->enable_profiler(TRUE);
}

public function index() {
   $this->load->view('upload_form', array('error' => ' ' ));
}

public function do_upload()
{
        $config['upload_path'] = './images/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size']  = 100;
        $config['max_width']  = 1024;
        $config['max_height'] = 768;

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

        $img = "img";

        if ( ! $this->upload->do_upload($img))
        {
                $error = array('error' => $this->upload->display_errors());
                $this->load->view('upload_form', $error);

                print_r($error);
        }
        else
        {
                $data = array('upload_data' => $this->upload->data());

                $field_data = $this->upload->data();

                echo $field_data['file_name']; // etc 

                $this->load->view('upload_success', $data);
                print_r($data);
        }
}
}
Автор: Mr. ED Размещён: 29.04.2015 02:10
Вопросы из категории :
32x32