2015-05-18 87 views
0

4K csv文件,我可以使用phpexcel读了几CSV行,但是当我尝试读取4K行抛出一个异常,我得到以下信息:我怎么能读取phpexcel

注意:未定义指数:
加载文件“”时出错:无法打开阅读!文件不存在。

$nomOrigine = $_FILES["monfichier"]["name"]; 
$elementsChemin = pathinfo($nomOrigine); 
try { 
    $objPHPExcel = PHPExcel_IOFactory::load($nomOrigine); 
    $objWorksheet = $objPHPExcel->getActiveSheet(); 
} catch(Exception $e) { 
    die(_'Error loading file "'.pathinfo($nomOrigine,PATHINFO_BASENAME).'": '.$e->getMessage()_); 
} 
+0

你能分享一些代码吗?读取具有更多行的文件不应触发此异常...所以我猜文件的路径必须是错的 – Adrien

+0

@Adrien我的代码适用于xls和xslx,它在交换机部件中的csv处于非活动状态 - IOFactory.php我已经激活了,它只能运行3306行。如果我添加一个或多个没有任何退货数据的错误显示。 – java2dev

+0

您是否正在尝试阅读通过表单上传的文件? – Jakar

回答

0

在发布数据时,如果post_max_size比被上载,该文件将不会在服务器上接收到的,你可能得到的文件(或其他数据)小(像你一样),那并不是一个错误似乎没有道理。

将您的post_max_size增加到您认为需要的最大值,但是如果您需要非常大的尺寸,则不应该通过表单进行文件上传。

我说因为例如一个100MB的文件,上传时间会很长,而且(最后我检查)用户反馈不是很好,如果客户端或服务器出现错误,那么上传将不得不完全重新启动。如果您认为自己需要这种可调整的上传,您可以研究其他上传方法。

我想20M(正如你在评论中提到的那样)会很好,但这真的取决于你以及你希望处理的文件大小。

+0

你能否给我一个关于上传方法的特定单词或链接,因为我使用了一个44k行,大小为75M的文件,使用核心i5笔记本电脑和8GB RAM显示所有数据的时间非常长,而且我添加了在php.ini中的memory_size为2048. – java2dev

+0

@ java2dev,我会在一两天内(或者当我得到时间)做一些搜索,看看能否找到有用的东西。但是,您可能需要使用闪存...但我不确定...您也可能想要在PHP中处理大块内存和大型字符串/文件。我之前没有处理过大文件,所以我不确定,但这可能部分是由于'PHPExcel_IOFactory'的性能造成的。另外,你的意思是说你的笔记本电脑上有一个本地的PHP服务器,或者说你是从笔记本电脑上传的? – Jakar

+0

你认为如果我尝试直接连接工具到数据库,可以从数据库加载数据并显示它,因为html会更有效率吗? – java2dev