2015-11-16 2 views
1

Я работаю над проектом, в котором мне нужно импортировать данные из файла excel (.xlsx)
в таблицу в базе данных.
я уже писать код для контроллера upload.phpPHPExcel Codeigniter: Fatal error: Uncaught exception 'PHPExcel_Reader_Exception'

$this->load->library('excel'); 


    ini_set('memory_limit', '-1'); 


    $objReader = PHPExcel_IOFactory::createReader('Excel2007'); 



    $objReader->setReadDataOnly(true); 



    $path = $_SERVER['DOCUMENT_ROOT'] . '/bitcoinreports/uploads/data.xlsx'; 


    $objPHPExcel=$objReader->load($path); 


    $objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 

    //loop from first data until last data 

    for($i=2; $i<=77; $i++){ 
    $name = $objWorksheet->getCellByColumnAndRow(0,$i)->getValue(); 
    $email = $objWorksheet->getCellByColumnAndRow(1,$i)->getValue(); 
    $phone = $objWorksheet->getCellByColumnAndRow(2,$i)->getValue(); 
    $details = $objWorksheet->getCellByColumnAndRow(3,$i)->getValue(); 
    $location = $objWorksheet->getCellByColumnAndRow(4,$i)->getValue(); 
    $data_user = array(
    "name" => $name, 
    "email" => $email , 
    "phone" => $phone , 
    "details" => $details , 
    "location" => $location , 
    ); 
    $this->dashboard_model->add_data($data_user); 
    } 

Всякий раз, когда я называю этот контроллер я получил следующую ошибку

Fatal error: Uncaught exception 'PHPExcel_Reader_Exception' with message 'Could not open C:/xampp/htdocs/bitcoinreports/uploads/data.xlsx for reading! File does not exist.' in C:\xampp\htdocs\bitcoinreports\application\third_party\PHPExcel\Reader\Excel2007.php:347 
Stack trace: 
#0 C:\xampp\htdocs\bitcoinreports\application\controllers\admin\upload.php(40): PHPExcel_Reader_Excel2007->load('C:/xampp/htdocs...') 
#1 [internal function]: Upload->index() 
#2 C:\xampp\htdocs\bitcoinreports\system\core\CodeIgniter.php(359): call_user_func_array(Array, Array) 
#3 C:\xampp\htdocs\bitcoinreports\index.php(202): require_once('C:\\xampp\\htdocs...') 
#4 {main} 
    thrown in C:\xampp\htdocs\bitcoinreports\application\third_party\PHPExcel\Reader\Excel2007.php on line 347 

Как решить эту проблему?

+2

Так ясно ошибка .. ваши данные файла. xlsx не существует на указанном вами пути или недоступен. Оба варианта как я вижу, что его внутри ваших окон C: .. – Svetoslav

ответ

0

Перед тем, как открыть файл, проверьте, существует ли он, И читается для процесса, который запускает PHP (в этом случае xampp. Не знаете, как пользователь назван в xampp, возможно, apache).

http://php.net/manual/en/function.is-readable.php

is_readable - Сообщает, существует ли файл и читается

Так заменить это:

$objPHPExcel=$objReader->load($path); 

с

if (is_readable($path)){ 
    $objPHPExcel=$objReader->load($path); 
} else { 
    // handle problem, for example 
    echo "cannot read $path"; 
    exit; 
}