【问题标题】:Code Igniter : error in reading .xslx file (file is not readable)代码点火器:读取 .xlsx 文件时出错(文件不可读)
【发布时间】:2014-08-08 12:36:18
【问题描述】:

------------------ 错误 ---------------------------- -

The filename ./upload/1407500591-CI1.xlsx is not readable

-------详细信息--------------------------

当我尝试上传文件时,它会上传到 ./upload 目录。但是当我尝试读取文件时,它会给出错误,就像它不是可读的一样。提前致谢。

------------- 控制器 ----------------------------

public function import_data()
{
    if($_POST['sheet_name'])
    {
        $values=$this->validate($_POST);
        if(isset($_FILES))
        {
            $config['upload_path'] = './upload/';
            $config['allowed_types'] = 'xlsx';
            $config['max_size'] = '100000';
            $config['file_name'] = time().'-'.$_POST['sheet_name'];
            $this->load->library('upload', $config);
            $this->upload->initialize($config); 
            if (!$this->upload->do_upload()) {
                echo $error = $this->upload->display_errors();
        }       
        $req['image_url']=$this->upload->do_upload();
        $this->excel_reader->read('./upload/'.$req['image_url']);

            // Get the contents of the first worksheet
                $worksheet = $this->excel_reader->sheets[0];
                //print_r($worksheet);
                //$data = new Spreadsheet_Excel_Reader($config['file_name']);

                $numRows = $worksheet['numRows']; // ex: 14
                $numCols = $worksheet['numCols']; // ex: 4
                $cells = $worksheet['cells']; // the 1st row are usually the field's name
                //print_r($cells );
                $rowCount = count($cells);
                $data['sheet_id']=$this->profile_model->createDatasheet($values);   
                $data['data_id']=-1;
                for($i=2;$i<=$rowCount;$i++) 
                {
                $data["profile_picture"]= isset($cells[$i][1]) ? $cells[$i][1] : '';

                $data["name"] = isset($cells[$i][2]) ? $cells[$i][2] : '';
                $data["country"]= isset($cells[$i][3]) ? $cells[$i][3] : '';
                $data["city"]= isset($cells[$i][4]) ? $cells[$i][4] : '';
                $data["email"]= isset($cells[$i][5]) ? $cells[$i][5] : '';
                $data["skype"]= isset($cells[$i][6]) ? $cells[$i][6] : '';
                $data["phone"]= isset($cells[$i][7]) ? $cells[$i][7] : '';
                $data["star_rating"]= isset($cells[$i][10]) ? $cells[$i][10] : '';
                $data["hourly_rate"]= isset($cells[$i][11]) ? $cells[$i][11] : '';
                $data["tag_line"]= isset($cells[$i][12]) ? $cells[$i][12] : '';
                $data["description"]= isset($cells[$i][8]) ? $cells[$i][8] : '';


                        $req['sheet_data_id']=$this->profile_model->insertDatasheetItems($data);    

                }       

                                //$req['image_url']=$data['website_name']."/i".$data['sheet_id']."/$count-".time().$path_parts['basename'];

                                //$this->save_image($file,$config['upload_path'].$req['image_url']);                            
                                $this->profile_model->insertDatasheetImages($req);

                redirect('/modify/user_scrape_data_display/'.$data['sheet_id']);
            }
        }
    }

【问题讨论】:

  • 可能库无法读取 .xlsx 文件;尝试将其转换为 .xls 并重试,以确定是否是问题所在。
  • 谢谢伙计。它帮助了我.... :)
  • 不客气。 :) 如果您解决了这个问题,那么值得自己添加一个包含解决方案详细信息的答案,以便将来遇到相同问题并最终遇到此问题的其他人可以从中受益。
  • 我刚刚根据您的建议解决了这个问题。我刚刚将 .xlsx 文件转换为 .xls 文件,并且成功了!

标签: php codeigniter file-upload phpexcelreader


【解决方案1】:

CI 库仅识别 .xls 文件。将您的文件从 .xlsx 重命名为 .xls,它应该可以工作。

【讨论】:

  • 感谢您的回答,但已在 cmets 中回答。
  • @user3886556 不过,正确设置答案是件好事。 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多