2015-02-26 3 views
0

Я действительно использую phpExcel для получения файла excel, который я восстанавливаю от пользователя с помощью <input type='file'> и после того, как я конвертирую этот файл excel в файл csv.phpExcel: Не удалось загрузить ресурс: net :: ERR_CONNECTION_RESET

Работает сценарий и файл csv. Проблема заключается в том, что после завершения моего скрипта страница никогда не перестает загружаться, и я получаю эту ошибку в моей консоли: Failed to load resource: net::ERR_CONNECTION_RESET.

Их еще одна проблема, я также использую другой объект в моем скрипте для отображения меню, и меню не отображается, я использую PHPExcel.

Их мой код называют мое создание объекта PHPExcel:

<?php 
///Get excelFile ///   
if(isset($_FILES['excelFileCandidat'])) 
{ 
    require_once dirname(__FILE__) . "/../../lib/ExcelCandidat/ExcelCandidat.class.php"; 
    $file = new ExcelCandidat($_FILES['excelFileCandidat']); 
    $file->excelFileToCsv(); 
} 



echo "<table width='100%'>"; 
echo  "<tr>"; 
echo  "<td>"; 
echo   "Import new Excel File : "; 
echo   "<input type='file' name='excelFileCandidat' />"; 
echo  "</td>"; 
echo  "<td>"; 
echo   "<input type='submit' name='submit' value='Send' />"; 
echo  "</td>"; 
echo  "</tr>"; 
echo "</table>"; 
?> 

И мой объект:

<?php 
require_once dirname(__FILE__) . "/../PHPExcel/PHPExcel.php"; 

class ExcelCandidat 
{ 
    private $excelFile; 
    public function __construct($file) 
    { 
     $this->excelFile = $file; 
    } 

    public function excelFileToCsv() 
    { 
     set_time_limit(600); 
     if (!is_array($this->excelFile)) 
     { 
      throw new Exception("STR_APPROCHECK_ERR"); 
     } 

     $newFilename = 'csvCandidat'; 
     $ext = strrchr($this->excelFile['name'], '.'); 
     $isExcel = stripos($ext, '.xls') !== false; 
     if($isExcel) 
     { 
      ini_set('memory_limit', '256M'); 
      $objPHPExcel = PHPExcel_IOFactory::load($this->excelFile['tmp_name']); 
      $worksheet = $objPHPExcel->getActiveSheet(); 
      $writer = PHPExcel_IOFactory::createWriter($objPHPExcel , 'CSV'); 
      $writer->setDelimiter(';'); 
      $writer->setEnclosure('"'); 
      $writer->setUseBOM(false); 
      $tmpName = dirname(__FILE__) . '/file/' . $newFilename . date('ymdHis') .'.csv'; 
      $writer->save($tmpName); 
      unset($objPHPExcel, $writer); 
     } 
    } 
} 
?> 
+0

The проблема возникает из строки $ objPHPExcel = PHPExcel_IOFactory :: load ($ this-> excelFile ['tmp_name']); потому что когда я комментирую все, кроме этой строки, проблема остается – Kvasir

+0

Что странно в том, что скрипт входит в другой объект и передает все, кроме моего эха, не работает. Я потерялся. – Kvasir

+0

Я просто попробовал другой компьютер, и проблема исчезла, поэтому я думаю, что это проблема конфигурации, я действительно использую wamp 2.2 с php 5.2.7. Но у меня все еще есть проблема. – Kvasir

ответ

0

Я считаю проблему приходят из библиотеки в файле PHPExcel/Calculation.php.

Вы должны добавить строку в начало класса PHPExcel_Calculation добавить строку private $saveThis; и в функции конструкта (строка 1722) добавить line $this->saveThis = $this; и в функции самоуничтожения (строка 1740) remplace $this по $saveThis

+0

Вы не хотите менять библиотеку phpexcel. – iswinky

+0

Как правильно моя проблема, да, это то, что я буду делать. – Kvasir

+0

Ну, очевидно, вы можете, но если вы решите обновить PHPExcel, возможно, он больше не работает. Или вы можете обнаружить, что использование других частей библиотеки больше не будет работать. – iswinky

Смежные вопросы