2011-11-25 81 views
2

我試圖打開一個xlsx文件來解析它到sqlite3數據庫。但我似乎甚至無法打開xlsx文件。PHPExcel閱讀器似乎沒有在文件中讀取?

這是我的代碼:

<?php 

    require_once 'Classes/PHPExcel.php'; 
    require_once 'Classes/PHPExcel/IOFactory.php'; 

    error_reporting(E_ALL); 

    print "trying to upload"; 

    $fileName = basename($_FILES['uploadedfile']['name']); 
    $target_path = "someDir/"; 
    $target_path .= $fileName; 

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) 
    { 
    print "Upload Successful"; 
    chmod($fileName, 0644); 

    $objReader = new PHPExcel_Reader_Excel2007(); 
    $objReader->setReadDataOnly(true); 
    $objPHPExcel = $objReader->load($fileName); 

    print "still online!"; 
    } 
?> 

,但劇本沒有使它的最後一個print語句。因此,在這4次調用PHPExcel API的過程中,事情變得混亂起來。但沒有錯誤報道。

有什麼想法?

+0

您是否啓用了錯誤報告? – Sjoerd

+1

你的腳本內存不足了嗎?如果電子表格很大,PHPExcel會消耗大量的內存。 – richsage

+0

爲什麼要創建'$ objPHPExcel = new PHPExcel();'然後覆蓋這個'$ objPHPExcel'? – Niels

回答

2

您似乎試圖加載相對於腳本路徑的文件,但實際上已將其移至另一個目錄。因此,改變這一行:

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

到:

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

這將是完整路徑,如 'someDir/filename.xlsx'。

你會想改變你的chmod調用以使用$ target_path,因爲它不太可能找到修改權限的文件(如果不是,它將返回false)。