Имя файла feed1.xls не читается в php
Привет я хочу проанализировать файл excel с помощью Zend framework. Я пошел в Zend Developer Zone и нашел решение скачать phpexcelreader. Я загрузил код, установил проект на localhost и запустил код. Когда я treid читать .xlsx
файл генерирует ошибку
The filename feed1.xlsx is not readable
Я сохранил файл в и запустить код успешно парсится файл. Теперь я хочу реализовать это в своем проекте, разработанном в 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>';
}
}
Я вызвал эту функцию модели в моем контроллере. Но он генерирует ту же ошибку, которую я нашел на localhost с помощью .xlsx
файлы. Но я читаю!--3--> файл, который анализируется кодом, запущенным в простом проекте на localhost.Я также запускаю Zend framework в local.
что не так в моем коде? Или есть какой-то способ выполнить ту же задачу.?
5 ответов
насколько я могу судить, ошибка, которую вы видите, устанавливается этой строкой кода:
if(!is_readable($sFileName)) {
$this->error = 1;
return false;
}
по той или иной причине он не может прочитать файл, который вы даете, либо потому, что есть проблема с разрешениями/пользователем, либо путь к файлу неправильный.
Если вы находитесь на сервере *nix, вы должны убедиться, что пользователь, запускающий веб-сервер, имеет разрешение на чтение файла excel. Веб-сервер, вероятно, работает как другой пользователь, чем владелец файла. Вы также можете попробовать установка разрешений на 666.
если он просто не находит файл, предоставление полного пути может помочь (например,$data->read('/usr/local/apache2/htdocs/Excelreader/feed1.xls');
Я думаю, что проблема в кодировке типа .xlxs
файл, а не в настройке разрешения файла. Если вы измените разрешение, оно не будет работать для вас. Проблема в OLE_IDENTIFIER (���)
.
таким образом, ваши данные файла должны начинаться с ���
данные. Даже я ищу правильное решение для этого. Кто-нибудь может помочь ??
ошибка, безусловно, может быть более описательной. Я добавил в оболочку внутри функции read () вот так:
if (file_exists($sFileName))
{
...
}else{
die('The file ' . $sFileName . ' was not found');
}
и, конечно же, я все время искал в неправильном каталоге!!
конвертируйте файл xlsx в xls, и он будет работать:)
это работает для меня, вы можете попробовать его.