文件名feed1.xls在php中不可读

您好我想parsing一个Excel文件使用zend框架。 我去了Zend Developer Zone ,find了下载phpexcelreader的解决scheme。 我下载了代码在localhost上设置了一个项目并运行代码。 当我艰难地阅读一个.xlsx文件时,它会产生一个错误

 The filename feed1.xlsx is not readable 

我以.xls格式保存文件,并成功运行代码parsing文件。 现在我想在我的Zend framework开发的项目中实现这个。 我创build了一个模型,并在我的项目和require_once编辑我的项目顶部的excelreader像这样。

  require_once 'Excelreader/Excel/reader.php'; class ExcelreaderModel extends Zend_Db_Table { function readFile() { $data = new Spreadsheet_Excel_Reader(); // Set output Encoding. $data->setOutputEncoding('CP1251'); //$data->read('Excelreader/Excel/feed1.xls'); $data->read('feed1.xls'); echo '<pre>'; print_r($data); echo '</pre>'; } } 

我在我的控制器中调用了这个模型函数。 但是它产生了同样的错误,我使用.xlsx文件在本地主机上find了。 但我正在读取.xls文件,该文件由在localhost上运行的简单项目的代码进行parsing。我也在本地运行zend框架。

我的代码有什么问题? 还是有什么办法可以做同样的事情?

尽我所知,你看到的错误是由这行代码设置的:

 if(!is_readable($sFileName)) { $this->error = 1; return false; } 

由于某种原因,它无法读取您提供的文件,因为存在权限/用户问题,或文件path错误。

如果您在* nix服务器上,则应确保运行Web服务器的用户有权读取该excel文件。 Web服务器可能与谁拥有该文件的用户不同。 您也可以尝试将权限设置为666。

如果它只是找不到文件,提供一个完整的path可能会有所帮助,(例如$data->read('/usr/local/apache2/htdocs/Excelreader/feed1.xls');

我认为问题是在.xlxs文件的编码types,而不是设置文件权限。 如果您更改权限,则不适用于您。 问题出在OLE_IDENTIFIER ( ࡱ )

所以你的文件数据必须以数据开始。 即使我正在寻找适当的解决scheme。 任何人都可以帮忙吗?

错误当然可以更具描述性。 我在read()函数里面添加了一个包装器,如下所示:

 if (file_exists($sFileName)) { ... }else{ die('The file ' . $sFileName . ' was not found'); } 

果然,我一直在寻找错误的目录!

mb_internal_encoding("8bit"); 在php文件的头部为我做了诡计。