codeigniter-表格与图像和pdf上传

I have a form which accepts some text input fields and a file field (used to upload image and pdf). My problem is like that, if I did not fill upload image, i get an error. How to make the error become text default by the function or i mean that empty field change with my function $default_jarkom etc? The Controller is:

public function tambah() 
{
    //$file             = base_url()."assets/file/".$_FILES['berkas']['name'];
    $default_jarkom = base_url()."assets/images/img1.jpg";
    $default_android = base_url()."assets/images/img2.jpg";
    $file_gambar    = base_url()."assets/images/".$_FILES['berkas1']['name'];
    if (isset($_POST['nama']) || isset($_POST['deskripsi'])) {
        $matkul             = $_POST['matkul'];
        $dosen              = $_POST['dosen'];
        $nama               = $_POST['nama'];
        $deskripsi          = $_POST['deskripsi'];      
        $file               = $_FILES['berkas']['name'];
        $file_gambar;
        $check              = $this->db->query(
                                        "SELECT * FROM materi
                                        WHERE nama_materi='$nama' 
                                        OR deskripsi='$deskripsi';"
                                        );
        $msg                = false;
        if ($check->num_rows()==0){
            $id                 = $this->materi_model->buat_id();       
            $simpan             = $this->materi_model->tambah(
                                    $id,
                                    $matkul             = $_POST['matkul'],
                                    $dosen,
                                    $nama               = $_POST['nama'],
                                    $deskripsi          = $_POST['deskripsi'],
                                    $file               = $_FILES['berkas']['name'],
                                    $file_gambar
                                );

            if ($simpan) {
                $this->aksi_upload() ;
                $this->aksi_upload1() ;
                $msg        = true;
            }
        }           
        echo json_encode($msg);
    }
}

public function aksi_upload(){
    $config['upload_path']          = './assets/file/';
    $config['allowed_types']        = 'gif|jpg|png|pdf|doc';
    $config['max_size']             = 10000;


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

    if ( ! $this->upload->do_upload('berkas')){
        $error = array('error' => $this->upload->display_errors());
        //$this->load->view('data_tugas_mhs', $error);
        return $error;
    }else{
        $data = array('upload_data' => $this->upload->data());
        //$this->load->view('data_tugas_mhs', $data);
        return $data;
    }
}

public function aksi_upload1()
{
    $image = FALSE; //by default file is not uploaded
    $data = array();
    $config['upload_path']          = './assets/images/';
    $config['allowed_types']        = 'gif|jpg|png|pdf|doc';
    $config['max_size']             = 10000;


    $this->load->library('upload', $config);
    $default_jarkom = base_url()."assets/images/img1.jpg";
    if ( ! $this->upload->do_upload('berkas1'))
    {
        $error = array('error' => $this->upload->display_errors());     
        return $error;
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());      
        return $data;
    }
}

First you should upload before inserting to get the proper uploaded filename. You should also check all your posts to see if they are null otherwise errors can occur. And you should either escape your input or use query builder as you had an insecure query.

I've modified your upload function as well to keep things DRY.

public function tambah() {
    $default_jarkom = base_url() . "assets/images/img1.jpg";
    $default_android = base_url() . "assets/images/img2.jpg";
    $msg = false;
    if (isset($_POST['nama']) || isset($_POST['deskripsi'])) {
        $nama = $_POST['nama'];
        $deskripsi = $_POST['deskripsi'];
        $matkul = isset($_POST['matkul']) ? $_POST['matkul'] : '';
        $dosen = isset($_POST['dosen']) ? $_POST['dosen'] : '';
        // insecure! you aren't escaping! using query builder or escape your data!!!
        $this->db->where('nama_materi', $nama);
        $this->db->or_where('deskripsi', $deskripsi);
        if ($this->db->count_all_results('materi')) {
            $file = $this->aksi_upload('berkas', $default_jarkom);
            $file_gambar = $this->aksi_upload('berkas1', $default_jarkom);
            $id = $this->materi_model->buat_id();
            if ($this->materi_model->tambah($id, $matkul, $dosen, $nama, $deskripsi, $file, $file_gambar)) {
                $msg = true;
            }
        }
    }
    echo json_encode($msg);
}

/**
 * Upload function
 * 
 * @param string $field
 * @param string $default Failed upload, return this
 * @return string
 */
public function aksi_upload($field = 'userfile', $default = '') {
    $this->load->library('upload');
    $config['upload_path'] = './assets/file/';
    $config['allowed_types'] = 'gif|jpg|png|pdf|doc';
    $config['max_size'] = 10000;
    $this->upload->initialize($config, true);
    if (!$this->upload->do_upload($field)) {
        return $default;
    }
    return base_url() . "assets/images/" . $this->upload->data('file_name');
}