require_once(PHPExcel/Classes/PHPExcel.php): 无法打开流
require_once(PHPExcel/Classes/PHPExcel.php): failed to open stream
我正在尝试将 PHPExcel 包含到 Silverstripe 3 站点以导出 excel 工作表。现在我只是想测试,但在尝试时出现此错误:
[Warning] require_once(/sitename/mysite/AddOns/PHPExcel/Classes/PHPExcel.php): failed to open stream: No such file or directory
我知道这个文件存在,因为我自己复制了它并一遍又一遍地重新检查了路径。所以我决定 "well check if the file exists" 使用此代码:
if(!file_exists(Director::baseURL().'mysite/AddOns/PHPExcel/Classes/PHPExcel.php')) {
echo 'sdf';exit;
}
根据错误,路径是正确的(也就是保存的地方),但是-文件不存在。我也以同样的方式要求文件,没有运气
require_once Director::baseURL().'mysite/AddOns/PHPExcel/Classes/PHPExcel.php';
我已经尝试了一切——检查文件权限,使用 ../../
引用父文件夹,像 AddOns/PHPExcel
一样直接调用它,将它移动到这个新的 AddOns 文件夹(首先尝试将 PHPExcel 类 在根上,然后发现 Silverstripe 没有读取它:) )
我知道我做错了什么,但对于我的生活我看不到什么。请帮忙
谢谢
正如所指出的,Director::baseURL()
将 return URL 而不是文件路径。
而是需要相对于 file 网络根目录,如下所示:
require_once(BASE_PATH . '/AddOns/PHPExcel/Classes/PHPExcel.php');
正如 Dan 和 Barry 在其他答案中所指出的,最好使用 composer 进行依赖管理。
BASE_PATH
是访问网站根文件夹的最佳方式。
require_once(BASE_PATH . '/AddOns/PHPExcel/Classes/PHPExcel.php');
此外,如果您不使用 Composer,这只是一个问题,要以正确的方式解决此问题,您应该 use composer。
您应该考虑使用 composer 来包含 PHPExcel class,这将避免手动 require
和 class 的需要,并将帮助您进行依赖项管理。
composer require phpoffice/phpexcel
我正在尝试将 PHPExcel 包含到 Silverstripe 3 站点以导出 excel 工作表。现在我只是想测试,但在尝试时出现此错误:
[Warning] require_once(/sitename/mysite/AddOns/PHPExcel/Classes/PHPExcel.php): failed to open stream: No such file or directory
我知道这个文件存在,因为我自己复制了它并一遍又一遍地重新检查了路径。所以我决定 "well check if the file exists" 使用此代码:
if(!file_exists(Director::baseURL().'mysite/AddOns/PHPExcel/Classes/PHPExcel.php')) {
echo 'sdf';exit;
}
根据错误,路径是正确的(也就是保存的地方),但是-文件不存在。我也以同样的方式要求文件,没有运气
require_once Director::baseURL().'mysite/AddOns/PHPExcel/Classes/PHPExcel.php';
我已经尝试了一切——检查文件权限,使用 ../../
引用父文件夹,像 AddOns/PHPExcel
一样直接调用它,将它移动到这个新的 AddOns 文件夹(首先尝试将 PHPExcel 类 在根上,然后发现 Silverstripe 没有读取它:) )
我知道我做错了什么,但对于我的生活我看不到什么。请帮忙
谢谢
正如所指出的,Director::baseURL()
将 return URL 而不是文件路径。
而是需要相对于 file 网络根目录,如下所示:
require_once(BASE_PATH . '/AddOns/PHPExcel/Classes/PHPExcel.php');
正如 Dan 和 Barry 在其他答案中所指出的,最好使用 composer 进行依赖管理。
BASE_PATH
是访问网站根文件夹的最佳方式。
require_once(BASE_PATH . '/AddOns/PHPExcel/Classes/PHPExcel.php');
此外,如果您不使用 Composer,这只是一个问题,要以正确的方式解决此问题,您应该 use composer。
您应该考虑使用 composer 来包含 PHPExcel class,这将避免手动 require
和 class 的需要,并将帮助您进行依赖项管理。
composer require phpoffice/phpexcel