我想用php导入excel。我有
public function importexcel()
{
$this->img = 'poc.xlsx';
$exceldata = array();
require 'Classes/PHPExcel/IOFactory.php';
try
{
$inputfiletype = PHPExcel_IOFactory::identify( $this->img);
$objReader = PHPExcel_IOFactory::createReader($inputfiletype);
$objPHPExcel = $objReader->load( $this->img);
}
catch(Exception $e)
{
die('Error loading file "'.pathinfo( $this->img,PATHINFO_BASENAME).'": '.$e->getMessage());
}
POC.xlsx
但是当我加载页面时出现了类似
的错误加载文件“poc.xlsx”时出错:无法打开poc.xlsx进行阅读! 文件不存在。
请帮帮我。任何帮助将不胜感激。
答案 0 :(得分:1)
您应始终使用文件的绝对路径。如果文件与控制器位于同一目录中,则具有路径的行应如下所示:
$this->img = __DIR__ . '/poc.xlsx';
__DIR__
是一个魔术常量,其值始终等于当前文件目录的绝对路径。
请注意,您正在使用require
语句,如下所示:
require 'Classes/PHPExcel/IOFactory.php';
由于您显然没有通知不存在文件的致命错误,因此它表示当前工作目录不是controllers
,而是在其上方。所以,你也可以写
$this->img = '../poc.xlsx';`
这可能也会奏效。但同样,当您使用绝对路径时,它将更容易避免丢失文件时的所有错误。