【发布时间】:2012-10-23 06:59:52
【问题描述】:
我正在使用 PHPExcel 插件来读取 excel 并将值存储在数据库中。它真的很酷,而且工作得很好。但是当我从我的机器上的不同位置上传 Excel 工作表时遇到了问题。
我猜是 bcoz,PHPExcel.php 定义了一个常量
if (!defined('PHPEXCEL_ROOT')) {
define('PHPEXCEL_ROOT', dirname(__FILE__) . '/');
require(PHPEXCEL_ROOT .'PHPExcel/Autoloader.php');
}
我想知道如何从任何位置上传和读取文件?另外,我不是在上传后保存文件,而是读取并保存记录到数据库,因为目的只是将记录输入到数据库。我该如何解决? documentation 非常好且内容广泛,但我有点缺乏时间来探索它,而且我还是 Obj Oriented PHP 的新手
感谢您的宝贵时间。
PS:我没有将文件存储在服务器上,只是从中读取和获取数据。
【问题讨论】:
-
我不确定您的实际问题:PHPExcel 本身是否无法正确加载,因为您对“PHPEXCEL_ROOT”的引用似乎暗示:还是因为它无法加载您的 Excel 文件?如果是后者,你会遇到什么错误?您是否为文件提供了正确的位置?该文件是否具有允许 PHP 访问它的权限?
-
@MarkBaker 感谢您的关注。我收到一条错误消息,说 致命错误:未捕获的异常“异常”,消息“无法打开 diamond_new.xlsx 进行阅读!文件不存在。 但是,如果我从我的根目录上传文件(即)PHPExcel.php 和带有类的 PHPExcel 文件夹所在的目录,它工作正常。文件具有权限,因为我可以从我的基本目录上传它们。但是如果我尝试从其他驱动器(在本地机器上)上传文件,它会给我上述错误
-
当你为加载指定文件时,确保你传递了正确的路径和文件名......如果你使用的是相对路径,它应该是相对于你的脚本当前工作目录 (getcwd) 或使用完整的文件系统路径
-
如果我没听错,你的意思是 phpreader 没有在系统上获取文件,除了根目录?而且我不必在 PHPExcel 库中进行任何更改,而是在我的服务器端。我不知道为什么,因为我在上传其他文件时没有遇到这个问题(例如:图像)。对不起,如果我听起来很天真!我是其中之一。
-
该文件必须存在于您运行 PHPExcel 的服务器上,或者必须先上传到该服务器,然后 PHPExcel 才能读取它。一旦文件在该服务器上,那么您需要告诉 PHPExcel 它在该服务器上的位置以便加载它