php - 使用ajax的文件输入codeigniter

标签 php ajax codeigniter

我想使用 ajax 上传文件,基于 codeigniter 和 file input 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')

关于php - 使用ajax的文件输入codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39305497/

相关文章:

php - 用 Composer 安装 Twig 给出错误

javascript - 使用 JavaScript Ajax 从另一个站点检索内容

php - 在 PHP 中创建用于聊天的客户端

php - 代码点火器在 WHERE 子句后附加 IS NULL

php - 使用 php 延迟发送电子邮件

php - 为什么我的 xdebug 没有样式?

php - 使用 CodeIgniter 创建 XML

Codeigniter:我可以从同一个函数返回多个值吗?

php - php中如何通过mysql的结果

jquery - Rails3 中使用 jquery 的动态表单字段