Javascript 如何使用Codeigniter和jQueryAjax实现文件上传?

Javascript 如何使用Codeigniter和jQueryAjax实现文件上传?,javascript,jquery,ajax,codeigniter,Javascript,Jquery,Ajax,Codeigniter,我想使用Codeigniter和jqueryajax创建文件上传而不刷新页面,如下脚本所示 最重要的是,我不知道如何在jQuery中开始使用Ajax,请帮助展示一些将jQuery Ajax与codeigniter中的文件上传相结合的想法或步骤 这是我的控制器: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Upload extends Frontend_Controller

我想使用Codeigniter和jqueryajax创建文件上传而不刷新页面,如下脚本所示

最重要的是,我不知道如何在jQuery中开始使用Ajax,请帮助展示一些将jQuery Ajax与codeigniter中的文件上传相结合的想法或步骤

这是我的控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Upload extends Frontend_Controller {

    public function __construct() {

        parent::__construct(); 
    }
    function index()
    {
        $this->data['subview'] = 'employee/cv/upload';
        $this->load->view('_main_layout',$this->data);
    } 
    function do_upload()
    { 
        $config['upload_path'] = 'images/employee/cv';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '10000';
        $config['max_width']  = '1024';
        $config['max_height']  = '768'; 
        $this->load->library('upload', $config); 
        if ( ! $this->upload->do_upload('image'))
        {
            $error = array('error' => $this->upload->display_errors()); 
            $this->data['subview'] = 'employee/cv/upload';
                $this->load->view('_main_layout',$this->data);
        }
        else
        { 
            $data = array('upload_data' => $this->upload->data('image'));

        }
    }

}

这将通过ajax提交表单(无需页面刷新)

你可以检查这个问题

<div id="container">
        <div class="col-md-12">
            <div class="row" id="image-preview">
            </div>
        </div>
        <div class="row">
            <div class="col-md-12"> 
            <?PHP echo form_open_multipart(base_url('employees/upload/do_upload'),'class="form-horizontal" role="form" id="ajaximageupload"  ')?>
                  <div class="form-group">
                    <label for="inputPassword3" class="col-sm-5 control-label">Add Image</label>
                    <div class="col-sm-7">
                      <input type="file" class="" id="file" placeholder="" name="image">
                    </div>
                  </div>
                  <div class="form-group">
                  <label for="inputPassword3" class="col-sm-5 control-label"></label>
                    <div class="col-sm-7">
                      <input type="submit" name="upload" class="btn btn-primary" value="Upload" />
                    </div>
                  </div>
                </form>

                </div>
            </div>
            <div class="row">
                <div class="progress progress-striped active">
                  <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width:0%;">
                  </div>
                </div>
            </div> 
        </div>
    </div>
$(document).on("submit", "form", function(event)
{
    event.preventDefault();

    var url=$(this).attr("action");
    $.ajax({
        url: url,
        type: 'POST',            
        data: new FormData(this),
        processData: false,
        contentType: false,
        success: function (data, status)
        {

        }
    });
});