简体   繁体   中英

Error Upload Image in Codeigniter

I have developed project in codigniter, I think the code is correctly based on codeigniter documentation. when I uploaded the image, it said "unable to load the requested file" and the mistake was in controller function simpan(), can you help me to solve this problem ?

This code in the model :

<?php class Mahasiswa_model extends CI_Model{
function simpan_mahasiswa($npm,$nama,$prodi,$fakultas,$angkatan,$email,$image_name,$image){ 
    $data = array(
        'npm'       => $npm,
        'nama'      => $nama,
        'prodi'     => $prodi, 
        'fakultas'  => $fakultas,
        'angkatan'  => $angkatan,
        'email'     => $email,
        'qr_code'   => $image_name,
        'gambar'    => $image
    );
    $this->db->insert('mahasiswa',$data);
} }

This code in the controller :

<?php class Mahasiswa extends CI_Controller{
function __construct(){
    parent::__construct();
    $this->load->model('mahasiswa_model'); //pemanggilan model mahasiswa
}
function simpan(){

//membuat konfigurasi
    $config['upload_path']="./assets/images";
    $config['allowed_types']='gif|jpg|png';
    $config['encrypt_name'] = TRUE;
    $this->load->library('upload', $config);

    if($this->upload->do_upload("userfile")){
        $data = array('upload_data' => $this->upload->data());

        $npm=$this->input->post('npm');
        $nama=$this->input->post('nama');
        $prodi=$this->input->post('prodi');
        $fakultas=$this->input->post('fakultas');
        $angkatan=$this->input->post('angkatan');
        $email=$this->input->post('email');

        $image= $data['upload_data']['file_name']; 

        $this->mahasiswa_model->simpan_mahasiswa($npm,$nama,$prodi,$fakultas,$angkatan,$email,$image_name,$image); //simpan ke database
        redirect('mahasiswa'); //redirect ke mahasiswa usai simpan data

    }
    else{
        echo "error";
    }

} }

This code is the modal form and the view name is 'mahasiswa_view.php':

    <!-- Modal add new mahasiswa-->
<form action="<?php echo base_url().'index.php/mahasiswa/simpan'?>" method="post">
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Add New Mahasiswa</h4>
          </div>
          <div class="modal-body">

              <div class="form-group">
                <label for="npm" class="control-label">NPM:</label>
                <input type="text" name="npm" class="form-control" id="npm" required> 
              </div>
              <div class="form-group">
                <label for="nama" class="control-label">NAMA:</label>
                <input type="text" name="nama" class="form-control" id="nama" required>
              </div>
                        <div class="form-group">
                <label for="prodi" class="control-label">PRODI:</label>
                <input type="text" name="prodi" class="form-control" id="prodi" required>
              </div>
              <div class="form-group">
                <label for="fakultas" class="control-label">FAKULTAS:</label>
                <select name="fakultas" class="form-control" id="fakultas">
                    <option>FMIPA</option>
                    <option>FKG</option>
                    <option>FTIP</option>
                                <option>FH</option>
                                <option>FISIP</option>
                </select>
                        </div>
                        <div class="form-group">
                <label for="angkatan" class="control-label">ANGKATAN:</label>
                <select name="angkatan" class="form-control" id="angkatan">
                    <option>2017</option>
                    <option>2016</option>
                    <option>2015</option>
                                <option>2014</option>
                                <option>2013</option>
                                <option>2012</option>
                </select>
              </div>
              <div class="form-group">
                <label for="email" class="control-label">EMAIL:</label>
                <input type="email" name="email" class="form-control" id="email">
              </div>
              <div class="form-group">
                  <label for="userfile">Gambar :</label>
                  <input type="file" name="userfile" class="file">
                  <div class="input-group col-xs-12">
                    <span class="input-group-addon"><i class="glyphicon glyphicon-picture"></i></span>
                    <input type="text" class="form-control input-lg" disabled placeholder="Upload Gambar">
                    <span class="input-group-btn">
                      <button class="browse btn btn-primary input-lg" type="button"><i class="glyphicon glyphicon-search"></i> Telusuri</button>
                    </span>
                  </div><br>
               </div>   


          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Tutup</button>
            <button type="submit" name="submit" class="btn btn-primary" >Simpan</button>
          </div>
        </div>
      </div>
    </div>
</form>

<script type="text/javascript" src="<?php echo base_url().'assets/js/jquery-2.1.4.min.js'?>"></script>
<script type="text/javascript" src="<?php echo base_url().'assets/js/bootstrap.js'?>"></script>
<script type="text/javascript">
    $(document).on('click', '.browse', function(){
    var file = $(this).parent().parent().parent().find('.file');
    file.trigger('click');
    });
    $(document).on('change', '.file', function(){
    $(this).parent().find('.form-control').val($(this).val().replace(/C:\\fakepath\\/i, ''));
  });
</script>

If it's an issue with the library try this after calling the do_upload function:

$this->upload->display_errors('<p>', '</p>');

Also, If you're uploading .jpeg files you need to add .jpeg to your allowed types.

 $config['allowed_types']='gif|jpg|png|jpeg';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM