首页 > 解决方案 > 文件不是通过序列化插入 javascript

问题描述

我正在使用 Codeigniter 和 javaScript 文件上传和插入数据库,但没有响应,所以请检查我的代码 abd 分享有价值的想法。分享所有代码听...查看页面表单数据,javascript代码响应错误和模态提交数据代码在这里.....

看法

<form id="frm_submit"  enctype="multipart/form-data">
 <input type="file" name="reportfile" class="form-control">
 <button type="submit" class="btn btn-info" name="submit"> Save</button>
</form>

脚本

 $("#frm_submit").on('submit', function (e){
                e.preventDefault();
               $.ajax({
                   url: '<?php echo base_url() ?>vendors/upload-report-file',
                   type: 'POST',
                   data: $("#frm_submit").serialize()
                   }).always(function (response){
                   var r = (response.trim());
                       if(r !=0){
                           $(".success").show();
                           $(".danger").css("display","none");
                           setInterval('location.reload()',2000);
                       }else{
                           
                           $(".danger").show();
                           $(".success").css("display","none"); 
                       } 
                     });
                     
                  });

楷模

  public function vendors_upload_report_file()
    {
        $db2 = $this->load->database('bstdc',TRUE);
        date_default_timezone_set('Asia/Kolkata');
        $vendorsid            = $this->session->userdata['vendors_data'][0]['vendor_id'];
        $file_request_id      = $this->input->post('file_department_id');
        $file_request_id      = $this->input->post('file_request_id');
        $reportfile           = $this->input->post('reportfile');
        $today_date           = date("Y-m-d");
    
        if(!empty($reportfile)){
      
                $filename = $_FILES['reportfile']['name'];
                if (!empty($filename)){
                $pic = $a.'-'.rand(5,10).time()."".$filename;
                move_uploaded_file($_FILES['reportfile']['tmp_name'],'upload/files/'.$pic);
                $report_pic_url                   = ''.base_url().'upload/files/'.$pic.'';
                
               $db2->query('INSERT INTO  bstdc_reports_file (request_id,sendor_type,sendor_id,reports_file,reports_file_url,created_date,act_status,del_status)
               VALUES ("'.$file_request_id.'","Vendors","'.$vendorsid.'","'.$pic.'","'.$report_pic_url.'", "'.$today_date.'", "Y","N")');
                return true;
                }else{
                    return false;
            }
        }         

    }    
    
    

标签: javascriptjqueryajaxcodeigniter

解决方案


使用FormData对象上传文件

$("#frm_submit").on('submit', function (e) {
  e.preventDefault();
  $.ajax({
    url: '<?php echo base_url() ?>vendors/upload-report-file',
    type: 'POST',
    data: new FormData(this), // <== changed from $("#frm_submit").serialize()
  }).always(function (response) {
    var r = (response.trim());
    if (r != 0) {
      $(".success").show();
      $(".danger").css("display", "none");
      setInterval('location.reload()', 2000);
    }
    else { 
      $(".danger").show();
      $(".success").css("display", "none");
    }
  });
});

推荐阅读