繁体   English   中英

使用ajax文件输入codeigniter

[英]file input codeigniter using ajax

我想使用ajax上传文件,基于coignorated的codeigniter和文件输入kartik

所以我创建了这样的:

<label for="file">Upload CSV 's</label>
<input name="egt" id="egt" class="file-loading" type="file" multiple data-no="1">

JS

$("#egt").fileinput({
        dropZoneEnabled: false,
        uploadUrl: "<?php echo site_url('admin/kecil/c_daily_egt/create_daily/egt') ?>",
        uploadAsync: true,
        maxFileCount: 20,
    });

public function create_daily() {
    $pathToUpload = "./assets/uploads/";
    $dir_exist = true; // flag for checking the directory exist or not
    if (!is_dir($pathToUpload)) {
        mkdir($pathToUpload, 0777, true);
        $dir_exist = false; // dir not exist
    }


    $name_file = $_FILES['egt']['name']; //initialize name of file

    $config['upload_path'] = $pathToUpload;
    $config['file_name'] = $name_file;
    $config['allowed_types'] = 'csv';
    $config['file_name'] = '';
    $config['max_size'] = '50000';
    $config['overwrite'] = TRUE;

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

    if (!empty($_FILES)) {
        $this->upload->initialize($config);
        if (!$this->upload->do_upload($name_file)) {
            echo json_encode($this->upload->display_errors());
        } else {
            $upload_data = $this->upload->data();
            echo json_encode("Success" . $upload_data);
        }
    }
}

我刚刚得到这样的错误:

You did not select a file to upload.

所以,我这样调试:

Array
(
[egt] => Array
    (
        [name] => EGT_STRG.CSV
        [type] => application/vnd.ms-excel
        [tmp_name] => E:\wamp64\tmp\phpE56C.tmp
        [error] => 0
        [size] => 4748
    )
)

任何帮助它如此欣赏。

您是通过文件名引用该文件:

if (!$this->upload->do_upload($name_file)

但是你需要引用'egt'这是你上传的文件。

尝试这个:

if (!$this->upload->do_upload('egt')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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