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

Awa*_*rni 6 php excel zend-framework

嗨,我想使用zend框架解析excel文件.我去了Zend Developer Zone并找到了一个下载phpexcelreader的解决方案.我在localhost下载了代码集项目并运行代码.当我想读取.xlsx文件时会产生错误

The filename feed1.xlsx is not readable
Run Code Online (Sandbox Code Playgroud)

我以.xls格式保存文件并运行成功解析文件的代码.现在我想在我开发的项目中实现这一点Zend framework.我创建了一个模型,在我的项目中,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>';
}
}
Run Code Online (Sandbox Code Playgroud)

我在我的控制器中调用了这个模型函数.但是它产生了我在localhost上使用.xlsx文件发现的相同错误.但是我正在读取.xls由localhost上的简单项目运行的代码解析的文件.我也在本地运行zend框架.

我的代码有什么问题?或者有什么办法可以完成同样的任务.

小智 6

我认为问题在于.xlxs文件的编码类型而不是设置文件权限。如果您更改权限,它将对您不起作用。问题在OLE_IDENTIFIER (????).

所以你的文件数据必须以????数据开头。甚至我也在为此寻找合适的解决方案。有人可以帮忙吗??


dre*_*010 2

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

if(!is_readable($sFileName)) {
    $this->error = 1;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

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

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

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