文件名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文件的头部为我做了诡计。