Javascript 您没有选择要上载的文件。代码点火器

Javascript 您没有选择要上载的文件。代码点火器,javascript,php,ajax,codeigniter,Javascript,Php,Ajax,Codeigniter,型号: 控制器: public function insertSuratMasuk($filename) { $data = array('nomor_surat' => $this->input->post('nosurat'), 'tgl_kirim' => $this->input->post('tglkirim'), 'tgl_terima'

型号:

控制器:

public function insertSuratMasuk($filename)
{
    $data = array('nomor_surat'     => $this->input->post('nosurat'),
                  'tgl_kirim'       => $this->input->post('tglkirim'),
                  'tgl_terima'      => $this->input->post('tglterima'),
                  'pengirim'        => $this->input->post('pengirim'),
                  'penerima'        => $this->input->post('penerima'),
                  'perihal'         => $this->input->post('perihal'),
                  'file_surat'      => $filename,
                  'status'          => 'proses'
                 );

    $this->db->insert('surat_masuk', $data);

    if($this->db->affected_rows() == 0){
        return false;
    }

    return true;
}
视图:

public function addSuratMasuk()
{
    $config['allowed_types'] = 'pdf|doc|docx';
    $config['upload_path']   = './uploads/';
    $config['max_size']      = 4000;

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

    $r = array('status' => true, 'error' => '');

    if($this->upload->do_upload('suratMasuk')){
        $upload = $this->upload->data();
        $filename = $upload['file_name'];
        if($this->surat_masuk_m->insertSuratMasuk($filename) == true){
            echo json_encode($r);
        } else {
            $r['status'] = false;
            echo json_encode($r);
        }
    } else {
        $r['error'] = $this->upload->display_errors();
        $r['status'] = false;
        echo json_encode($r);
    }
}
我不知道为什么,我想我所有的代码都很清楚。我很困惑。有人能帮我吗? 我非常希望有人能修复我的代码。
谢谢大家。

您不能使用ajax直接上传文件数据,但您可以使用
FormData()
实现同样的目的:

you did not select a file to upload

可能的重复是不同的问题您无法使用
ajax
jquery
功能上载任何文件您必须使用其他方式。这是相同的问题@瓦哈兹
function insertSuratMasuk() {
  event.preventDefault();
  data = $('#tambahSuratMasuk').serialize();
  $.ajax({
    url: '<?php echo base_url('index.php/surat_masuk/addSuratMasuk'); ?>',
    type: 'POST',
    dataType: 'json',
    data: data,
    success: function (r) {
      if(r.error == ''){
        if(r.status == true){
          swal('Insert data success', '', 'success');
        } else if (r.status == false) {
          swal('Insert data failed', '', 'danger')
        }
      } else {
        swal('Insert data failed', r.error, 'warning')
      }
    }
  })
}
you did not select a file to upload
$.ajax({
   ...
   data : new FormData($('#tambahSuratMasuk')), 
   ...
})