How to upload image in CodeIgniter?

后端 未结 7 1143
天涯浪人
天涯浪人 2020-11-30 13:56

In view

 
 

In con

相关标签:
7条回答
  • 2020-11-30 14:05

    Change the code like this. It works perfectly:

    public function uploadImageFile() //gallery insert
    { 
        if($_SERVER['REQUEST_METHOD'] == 'POST') {
        $new_image_name = time() . str_replace(str_split(' ()\\/,:*?"<>|'), '', 
        $_FILES['image_file']['name']);
        $config['upload_path'] = 'uploads/gallery/'; 
        $config['allowed_types'] = 'gif|jpg|png|bmp|jpeg';
        $config['file_name'] = $new_image_name;
        $config['max_size']  = '0';
        $config['max_width']  = '0';
        $config['max_height']  = '0';
        $config['$min_width'] = '0';
        $config['min_height'] = '0';
        $this->load->library('upload', $config);
        $upload = $this->upload->do_upload('image_file');
        $title=$this->input->post('title');
        $value=array('title'=>$title,'image_name'=>
        $new_image_name,'crop_name'=>$crop_image_name);}
    
    0 讨论(0)
  • 2020-11-30 14:06

    Below code for an uploading a single file at a time. This is correct and perfect to upload a single file. Read all commented instructions and follow the code. Definitely, it is worked.

    public function upload_file() {
        ***// Upload folder location***
        $config['upload_path'] = './public/upload/';
    
        ***// Allowed file type***
        $config['allowed_types'] = 'jpg|jpeg|png|pdf';
    
        ***// Max size, i will set 2MB***
        $config['max_size'] = '2024';
    
        $config['max_width'] = '1024';
        $config['max_height'] = '768';
    
        ***// load upload library***            
        $this->load->library('upload', $config);
    
        ***// do_upload is the method, to send the particular image and file on that 
           // particular 
           // location that is detail in $config['upload_path']. 
           // In bracks will set name upload, here you need to set input name attribute 
           // value.***
    
        if($this->upload->do_upload('upload')) {
           $data = $this->upload->data();
           $post['upload'] = $data['file_name'];
        } else {
          $error = array('error' => $this->upload->display_errors());
        }
     }
    
    0 讨论(0)
  • 2020-11-30 14:08

    It seems the problem is you send the form request to welcome/do_upload, and call the Welcome::do_upload() method in another one by $this->do_upload().

    Hence when you call the $this->do_upload(); within your second method, the $_FILES array would be empty.

    And that's why var_dump($data['upload_data']); returns NULL.

    If you want to upload the file from welcome/second_method, send the form request to the welcome/second_method where you call $this->do_upload();.

    Then change the form helper function (within the View) as follows1:

    // Change the 'second_method' to your method name
    echo form_open_multipart('welcome/second_method');
    

    File Uploading with CodeIgniter

    CodeIgniter has documented the Uploading process very well, by using the File Uploading library.

    You could take a look at the sample code in the user guide; And also, in order to get a better understanding of the uploading configs, Check the Config items Explanation section at the end of the manual page.

    Also there are couple of articles/samples about the file uploading in CodeIgniter, you might want to consider:

    • http://code.tutsplus.com/tutorials/how-to-upload-files-with-codeigniter-and-ajax--net-21684
    • http://runnable.com/UhIc93EfFJEMAADX/how-to-upload-file-in-codeigniter
    • http://jamshidhashimi.com/image-upload-with-codeigniter-2/
    • http://code.tutsplus.com/tutorials/how-to-upload-files-with-codeigniter-and-ajax--net-21684
    • http://hashem.ir/CodeIgniter/libraries/file_uploading.html (CodeIgniter 3.0-dev User Guide)

    Just as a side-note: Make sure that you've loaded the url and form helper functions before using the CodeIgniter sample code:

    // Load the helper files within the Controller
    $this->load->helper('form');
    $this->load->helper('url');
    

    1. The form must be "multipart" type for file uploading. Hence you should use form_open_multipart() helper function which returns:
    <form method="post" action="controller/method" enctype="multipart/form-data" />

    0 讨论(0)
  • 2020-11-30 14:11

    Simple Image upload in codeigniter

    Find below code for easy image upload

    public function doupload()
         {
            $upload_path="https://localhost/project/profile"  
            $uid='10'; //creare seperate folder for each user 
            $upPath=upload_path."/".$uid;
            if(!file_exists($upPath)) 
            {
                       mkdir($upPath, 0777, true);
            }
            $config = array(
            'upload_path' => $upPath,
            'allowed_types' => "gif|jpg|png|jpeg",
            'overwrite' => TRUE,
            'max_size' => "2048000", 
            'max_height' => "768",
            'max_width' => "1024"
            );
            $this->load->library('upload', $config);
            if(!$this->upload->do_upload('userpic'))
            { 
                $data['imageError'] =  $this->upload->display_errors();
    
            }
            else
            {
                $imageDetailArray = $this->upload->data();
                $image =  $imageDetailArray['file_name'];
            }
    
         }
    

    Hope this helps you to upload image

    0 讨论(0)
  • 2020-11-30 14:14
    //this is the code you have to use in you controller 
    
            $config['upload_path'] = './uploads/';  
    
    // directory (http://localhost/codeigniter/index.php/your directory)
    
            $config['allowed_types'] = 'gif|jpg|png|jpeg';  
    //Image type  
    
            $config['max_size'] = 0;    
    
     // I have chosen max size no limit 
            $new_name = time() . '-' . $_FILES["txt_file"]['name']; 
    
    //Added time function in image name for no duplicate image 
    
            $config['file_name'] = $new_name;
    
    //Stored the new name into $config['file_name']
    
            $this->load->library('upload', $config);
    
            if (!$this->upload->do_upload() && !empty($_FILES['txt_file']['name'])) {
                $error = array('error' => $this->upload->display_errors());
                $this->load->view('production/create_images', $error);
            } else {
                $upload_data = $this->upload->data();   
            }
    
    0 讨论(0)
  • 2020-11-30 14:21
    $image_folder = APPPATH . "../images/owner_profile/" . $_POST ['mob_no'] [0] . $na;
                if (isset ( $_FILES ['image'] ) && $_FILES ['image'] ['error'] == 0) {
                    list ( $a, $b ) = explode ( '.', $_FILES ['image'] ['name'] );
                    $b = end ( explode ( '.', $_FILES ['image'] ['name'] ) );
                    $up = move_uploaded_file ( $_FILES ['image'] ['tmp_name'], $image_folder . "." . $b );
                    $path = ($_POST ['mob_no'] [0] . $na . "." . $b);
    
    0 讨论(0)
提交回复
热议问题