2011-11-25 67 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)。