简体   繁体   English

在codeigniter中上传文件

[英]Uploading a file in codeigniter

I am receiving an error stating You did not select a file to upload. 我收到一条错误,指出You did not select a file to upload. when trying to upload a file, though I have chosen a file to upload. 尝试上传文件时,虽然我选择了要上传的文件。 I am using an input file that was style using bootstrap. 我正在使用一个使用bootstrap样式的输入文件。 Is the issue with that? 问题是什么? I followed the instructions in the Codeigniter user guide for file uploads. 我按照Codeigniter用户指南中的说明进行文件上传。 Can anyone please help me and identify the error in my code? 任何人都可以帮助我,并在我的代码中识别错误?

Thank you 谢谢

Controller 调节器

public function create()
{
    $config['upload_path']          = './uploads/';
    $config['allowed_types']        = 'gif|jpg|png';

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

    if ( ! $this->upload->do_upload('userfile'))
    {
            echo "Upload failed";
    }
    else
    {
            $data = array('upload_data' => $this->upload->data());

    }

    $data = array(
        'category' => $this->input->post('category');
        'name' => $this->input->post('recipename'),
        'ingredients' => $this->input->post('ingredients'),
        'directions' => $this->input->post('directions'),
        'date' => date("Y/m/d")

    );

    $this->model->insert($data);
    redirect('', 'refresh');
}

View 视图

<form action="<?php echo base_url();?>home/create" method="POST" role="form" multipart>
        <legend>New Recipe</legend>

        <div class="form-group">
            <label for="">Category</label>

            <select name="category" id="input" class="form-control">
                <?php foreach ($category as $value) {?>
                <option value="<?php echo $value->category; ?>"><?php echo $value->category;?></option>
                <?php } ?>

            </select>


            <label>Name</label>
            <input type="text" name="recipename" class="form-control" id="" placeholder="Recipe Name">
            <label>Image</label>
            <div class="input-group">
                <label class="input-group-btn">
                    <span class="btn btn-primary">
                        Browse&hellip; <input type="file" name="userfile" style="display: none;" multiple>
                    </span>
                </label>
                <input type="text" class="form-control" readonly>
            </div>
            <label>Ingredients</label>
            <textarea name="ingredients" id="input" class="form-control" required="required"></textarea>
            <label>Directions</label>
            <textarea name="directions" id="input" class="form-control" required="required"></textarea>

        </div>



        <button type="submit" class="btn btn-primary">Submit</button>
      </form>

 <script type="text/javascript">


    $(function() {

      // We can attach the `fileselect` event to all file inputs on the page
      $(document).on('change', ':file', function() {
        var input = $(this),
            numFiles = input.get(0).files ? input.get(0).files.length : 1,
            label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
        input.trigger('fileselect', [numFiles, label]);
      });

      // We can watch for our custom `fileselect` event like this
      $(document).ready( function() {
          $(':file').on('fileselect', function(event, numFiles, label) {

              var input = $(this).parents('.input-group').find(':text'),
                  log = numFiles > 1 ? numFiles + ' files selected' : label;

              if( input.length ) {
                  input.val(log);
              } else {
                  if( log ) alert(log);
              }

          });
      });

    });
</script>

use enctype in your html form tag. 在你的html表单标签中使用enctype。

<form action="<?php echo base_url();?>home/create" method="POST" role="form" enctype="multipart/form-data" >

now try . 现在试试。 it will work .:) 它会工作。:)

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

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