Php 无法读取CodeIgniter中的Excel文件

Php 无法读取CodeIgniter中的Excel文件,php,excel,codeigniter,phpexcel,Php,Excel,Codeigniter,Phpexcel,我在一个使用CodeIgniter3和PHPExcel库上传excel文件的项目中遇到了一个问题 上载excel文件时出现问题,该文件已成功上载到文件夹中,但无法读取。此外,它还提供了一条错误消息: 加载文件“xls_文件”时出错:无法打开文件/assets/xls_文件/进行读取 因此数据无法保存到数据库中 我希望系统读取xls_文件文件夹中的文件,为什么系统将xls_文件作为文件夹读取?我的朋友告诉我CodeIgniter 3中的URI可能有问题,但我们不知道如何解决这个问题。这是我的控制器

我在一个使用CodeIgniter3和
PHPExcel
库上传excel文件的项目中遇到了一个问题

上载excel文件时出现问题,该文件已成功上载到文件夹中,但无法读取。此外,它还提供了一条错误消息:

加载文件“xls_文件”时出错:无法打开文件/assets/xls_文件/进行读取

因此数据无法保存到数据库中

我希望系统读取xls_文件文件夹中的文件,为什么系统将xls_文件作为文件夹读取?我的朋友告诉我CodeIgniter 3中的URI可能有问题,但我们不知道如何解决这个问题。这是我的控制器:

$fileName = time().$_FILES['file']['name'];
$config['upload_path'] = './assets/xls_file/'; //save excel file in folder
$config['file_name'] = $fileName;
$config['allowed_types'] = 'xls|xlsx|csv';
$config['max_size'] = 10000;

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

if(! $this->upload->do_upload('file') )
$this->upload->display_errors();

$media = $this->upload->data('file');
$inputFileName = './assets/xls_file/'.$media['file_name'];

try {
        $inputFileType = IOFactory::identify($inputFileName);
        $objReader = IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($inputFileName);
    } catch(Exception $e) {
        die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
    }

    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow();
    $highestColumn = $sheet->getHighestColumn();

    for ($row = 2; $row <= $highestRow; $row++){                  //  Read a row of data into an array                 
        $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
                                        NULL,
                                        TRUE,
                                        FALSE);

    //save into the column                              
         $data = array(
            "id_jalan"=> $rowData[0][0],
            "id_kriteria"=> $rowData[0][1],
            "nilai"=> $rowData[0][2],
            "tahun_anggaran"=> $rowData[0][3],
            "penanda"=> $rowData[0][4],
        );
        //save into the tabel
        $insert = $this->db->insert("value",$data);
        //delete_files($media['file_path']);

    }
redirect('page/landing');
$fileName=time();
$config['upload_path']='./assets/xls_file/'//将excel文件保存在文件夹中
$config['file_name']=$fileName;
$config['allowed_types']='xls | xlsx | csv';
$config['max_size']=10000;
$this->load->library('upload');
$this->upload->initialize($config);
如果(!$this->upload->do_upload('file'))
$this->upload->display_errors();
$media=$this->upload->data('file');
$inputFileName='./assets/xls_file/'.$media['file_name'];
试一试{
$inputFileType=IOFactory::identify($inputFileName);
$objReader=IOFactory::createReader($inputFileType);
$objPHPExcel=$objReader->load($inputFileName);
}捕获(例外$e){
die('Error loading file'.pathinfo($inputFileName,pathinfo_BASENAME)。'”:'。$e->getMessage());
}
$sheet=$objPHPExcel->getSheet(0);
$highestRow=$sheet->getHighestRow();
$highestColumn=$sheet->getHighestColumn();
对于($row=2;$row RANGETORARRAY('A'.$row'.:'。$HIGHEST COLUMN.$row),
无效的
是的,
假);
//保存到列中
$data=数组(
“id_jalan”=>$rowData[0][0],
“id_kriteria”=>$rowData[0][1],
“nilai”=>$rowData[0][2],
“tahun_anggaran”=>$rowData[0][3],
“penanda”=>$rowData[0][4],
);
//保存到表格中
$insert=$this->db->insert(“值”,$data);
//删除_文件($media['file_path']);
}
重定向(“页面/登录”);

您知道错误的核心原因是什么吗?请按函数“is_readable($file)”检查“read”权限。删除try catch并显示异常的完整堆栈跟踪。您可以给出一个如何使用函数@comm1x?@RakaDwija的示例吗?您应该检查$inputFileName变量。如果(!is_readable($inputFileName))死亡('cant read file,check permissions')。我认为codeigniter没有问题,它是文件系统或文件类型。结果是无法读取文件,是否有任何设置需要更改?我已经尝试了2天,仅针对这种情况:(提供文件的绝对路径)