【问题标题】:Codeigniter can't read file name of uploaded fileCodeigniter 无法读取上传文件的文件名
【发布时间】:2017-04-10 02:49:00
【问题描述】:

试图读取作为表单一部分上传的文件的文件名。我用来测试的 print_r 命令只显示一个空白屏幕。我已经阅读了与此相关的手册(靠近底部here)并且不明白我做错了什么。

控制器:

public function do_upload() { 
     $config['upload_path']   = './uploads/'; 
     $config['allowed_types'] = 'gif|jpg|png|txt|pdf|xlsx|csv|xls|bmp'; 
     $config['max_size']      = 1000; 

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

     print_r($file_name);

查看:

<?php echo form_open_multipart('Corpmuns/do_upload', array('method' => 'post'));?> 

... // some drop-down menus and text fields here

<INPUT TYPE="file" NAME="userfile" id="userfile" > 

</form>

【问题讨论】:

  • 嗨,我在回答中更正了您的控制器。检查一下。

标签: php codeigniter file-upload


【解决方案1】:

您没有执行上传操作,因此文件尚未上传。这就是为什么您无法获取上传文件的名称的原因。因为它不存在。 编码$this-&gt;upload-&gt;do_upload('userfile'),并确保文件上传成功,然后再获取文件名。

【讨论】:

  • 谢谢你,成功了。我怎样才能重命名它?如果我尝试使用新名称配置 ['file_name'],则 $file_name = $this->upload->data('orig_name');给我看新名字。我想要原始名称并重命名它。
  • @David 试试$this-&gt;upload-&gt;data('client_name')
【解决方案2】:

从上传库调用do_upload函数。

更新控制器:

public function do_upload() { 
     $config['upload_path']   = './uploads/'; 
     $config['allowed_types'] = 'gif|jpg|png|txt|pdf|xlsx|csv|xls|bmp'; 
     $config['max_size']      = 1000; 

     $this->load->library('upload', $config); 
     if ($this->upload->do_upload('userfile')) { //use this function

        $data['error'] = false;
        $upload_data = $this->upload->data();
        $data['data'] = $upload_data;
        $data['msg'] = 'Image Successfully Uploaded.';

     } else {

        $data['msg'] = $this->upload->display_errors('', '<br>');

     }

     print_r($data)
}

【讨论】:

    【解决方案3】:
            if ( ! $this->upload->do_upload('input_name'))
            {
                echo $this->upload->display_errors();
            }
            else
            {
    
                $file=$this->upload->data();
    
                echo $image=$file['file_name'];//Set file name to varilable
    
    
            }
        }
    

    【讨论】:

      【解决方案4】:
      <form action="" enctype="multipart/form-data" method="post" 
      name="uploadfile">
      

      你应该添加 enctype="multipart/form-data"

      【讨论】:

      • form_open_multipart() 创建一个带有enctype="multipart/form-data"的表单标签
      猜你喜欢
      • 1970-01-01
      • 2012-01-28
      • 2022-01-22
      • 2015-02-18
      • 2011-12-14
      • 2012-05-25
      • 1970-01-01
      • 2012-06-17
      • 2020-02-05
      相关资源
      最近更新 更多