【问题标题】:Upload from any location not working with PHPExcel从不使用 PHPExcel 的任何位置上传
【发布时间】: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 它在该服务器上的位置以便加载它

标签: php phpexcel dirname


【解决方案1】:

@马克贝克
您的 cmets 帮了我很多,我解决了这个问题。我实际上是在尝试通过不上传文件来减少负载。而只是读取并保存它。但这是不可能的,因为我们必须将文件物理地放在在运行时服务。 我已经改变了我的方法,现在上传文件,读取它,然后在操作结束后取消文件与服务器的链接

感谢您的帮助,感谢您为解决 PHPExcel 问题所做的努力。它确实是一个很好的工具,可以继续使用并期待更多地探索它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多