Имя файла feed1.xls не читается в php - PullRequest
6 голосов
/ 24 января 2012

Привет, я хочу проанализировать файл Excel, используя Zend Framework.Я пошел в Zend Developer Zone и нашел решение для загрузки phpexcelreader .Я скачал код, установил проект на localhost и запустил код.Когда я пытаюсь прочитать файл .xlsx, возникает ошибка

The filename feed1.xlsx is not readable

. Я сохранил файл в формате .xls и запустил код, успешно проанализировавший файл.Теперь я хочу реализовать это в своем проекте, разработанном в Zend framework.Я создал модель, и в моем проекте и require_once руководил программой Excelreader в верхней части моего проекта, вот так:

<code> 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 '
';}}

Я вызвал эту модель в моем контроллере.Но он генерирует ту же ошибку, которую обнаружил на локальном хосте, используя .xlsx файлы.Но я читаю файл .xls, который анализируется кодом, работающим в простом проекте на локальном хосте. Я также использую Zend Framework на локальном компьютере.

Что не так в моем коде?Или есть ли способ сделать ту же задачу .?

Ответы [ 5 ]

4 голосов
/ 14 декабря 2012

Я думаю, что проблема в типе кодировки .xlxs файла, а не в настройке разрешения файла. Если вы измените разрешение, оно не будет работать для вас. Проблема в OLE_IDENTIFIER (��ࡱ�).

Таким образом, данные вашего файла должны начинаться с ��ࡱ� данных. Даже я ищу правильное решение для этого. Может ли кто-нибудь помочь ??

2 голосов
/ 24 января 2012

Насколько я могу судить, ошибка, которую вы видите, задается этой строкой кода:

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

По той или иной причине он не может прочитать файл, который вы предоставляете, либо из-за проблем с правами доступа / пользователя, либо из-за неправильного пути к файлу.

Если вы работаете на * nix-сервере, вы должны убедиться, что у пользователя, работающего с веб-сервером, есть разрешение на чтение файла Excel. Вероятно, веб-сервер работает от имени другого пользователя, а не от того, кому принадлежит файл. Вы также можете попробовать установить разрешения на 666.

Если файл просто не найден, может помочь предоставление полного пути (например, $data->read('/usr/local/apache2/htdocs/Excelreader/feed1.xls');

1 голос
/ 17 декабря 2014

mb_internal_encoding("8bit"); в заголовке файла php помог мне.

1 голос
/ 06 января 2013

Ошибка, безусловно, может быть более описательной. Я добавил в обертку внутри функции read () вот так:

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

И, конечно же, я все время искал в неправильном каталоге !!

0 голосов
/ 09 марта 2018

Пожалуйста, преобразуйте файл xlsx в xls, и он будет работать:)

он работает для меня, вы можете попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...