【问题标题】:Uploading multiple files at a time in codeigniter with different names在codeigniter中一次上传多个文件,名称不同
【发布时间】:2013-01-29 20:35:48
【问题描述】:

我是codeigniter的新手,谁能告诉我如何在codeigniter中同时将多个文件以不同的名称上传到服务器。

【问题讨论】:

    标签: php html codeigniter file-upload


    【解决方案1】:

    创建多文件上传表单。这里我参考users控制器中的upload方法。

    <form method="post" action="<?php echo base_url('users/upload/'); ?>" enctype="multipart/form-data">
        <label for="upload">Select : </label>
        <input type="file" name="upload[]" id="upload" multiple="multiple" />
        <input type="submit" name="fsubmit" id="fsubmit" value="Upload" />
    </form>
    

    并在您的upload 方法中编写以下代码。

    public function upload()
    {
        if (isset($_FILES['upload']['name'])) {
            // total files //
            $count = count($_FILES['upload']['name']);
            // all uploads //
            $uploads = $_FILES['upload'];
    
            for ($i = 0; $i < $count; $i++) {
                if ($uploads['error'][$i] == 0) {
                    move_uploaded_file($uploads['tmp_name'][$i], 'storage/' . $uploads['name'][$i]);
                    echo $uploads['name'][$i] . "\n";
                }
            }
        }
    }
    

    目录storage 是示例。您可以移动您选择的文件。 注意 这不是纯 CodeIgniter 的多文件上传方法。希望对你有帮助谢谢!!

    【讨论】:

      【解决方案2】:

      您可以通过以下方式上传不同名称的文件

      在视图中

      <?php echo form_open_multipart('upload/do_upload');?>
      
      <input type="file" name="userfile1" size="20" />
      
      <input type="file" name="userfile2" size="20" />
      

      在控制器中只需将字段名称传递给 do_upload 方法

      function do_upload()
          {
      
          $this->upload_file('userfile1');
          $this->upload_file('userfile2');
      
                  $this->load->view('upload_form', $error);
          }
      
       function upload_file($field_name){
             $config['upload_path'] = './uploads/';
              $config['allowed_types'] = 'gif|jpg|png';
              $config['max_size'] = '100';
              $config['max_width']  = '1024';
              $config['max_height']  = '768';
      
              $this->load->library('upload', $config);
      
              if ( ! $this->upload->do_upload($field_name))
              {
                  return array('error' => $this->upload->display_errors());
      
              }
              else
              {
                  $data = array('upload_data' => $this->upload->data());
      
              }
        }
      

      更多信息请阅读 CI 用户指南User guide

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多