uploading .ini files in CI

2019-09-16 05:56发布

问题:

I get following error when trying to upload .ini files

"The filetype you are attempting to upload is not allowed."

Below is the function for uploading files

  private function _upload_config_file() {

    $config['upload_path'] = APPPATH . 'config/ini/';
    $config['allowed_types'] = 'ini';
    $config['max_size'] = '2000000';
    $this->load->library('upload', $config);
    if ($this->upload->do_upload()) {
        $this->upload_status = 'File uploaded succesfully !';
        return true;
    } else {
        $this->upload_status = $this->upload->display_errors();
        return false;
    }
}

In View

$upload_file_attr = array(
                    'name' => 'userfile',
                    'id' => 'userfile',
                    'disabled' => 'disabled'
);
   echo form_open_multipart('sys_setting', $form_sys_setting_multi);
   echo form_label('Configure Manually' . form_checkbox($upload_checkbox, '', FALSE, $js_checkbox));
   echo form_button($download_button);
   echo form_upload($upload_file_attr);
   echo form_reset($upload_reset);
   echo form_submit($upload_submit);
   echo form_close();

Is there any changes to be made in php.ini for uploading .ini files ?

Or Is it codeigniter's upload library that doesn't allow to upload .ini files ?

Need suggestions to solve this issue.

回答1:

you forgot to put the field_name

Try adding this:

 if ($this->upload->do_upload('userfile')) { //parameter should the your input file name attribute
        $this->upload_status = 'File uploaded succesfully !';
        return true;
    } else {
        $this->upload_status = $this->upload->display_errors();
        return false;
    }


回答2:

I got this issue solved.In config/mimes.php modified $mimes array

     $mimes = array('ini' => 'application/octet-stream')

If any one knows how to solve this issue without modifying the core files, *Please do comment.*