Codeigniter 3- You haven't selected a file to download

Post_plot.php (This is my submission form)

<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> 

      

I have a long form with the ability to upload images.

I am using do_upload function to upload a file

I am getting the following error

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 controller

<?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

      

Should I pass any parameters to do_upload?

+3


source to share


1 answer


In this part, try to put

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

      

If not try / test with a form action="http://localhost:8080/ci/admin/plot/do_upload"

Codeigniter 2 User Guide http://www.codeigniter.com/userguide2/libraries/file_uploading.html



Codeigniter 3 User Guide http://www.codeigniter.com/user_guide/libraries/file_uploading.html?highlight=file%20upload

You may need to set multiple routes in your route. php

code

<?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);
        }
}
}

      

+4


source







All Articles