phpoffice phpexcel没有加载文件

时间:2017-10-05 21:13:30

标签: php phpexcel

我有以下代码:

require_once "../vendor/autoload.php";
require_once '../vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php';
$target_dir = "coverImages/";
$target_file = $target_dir . basename($_FILES["excelfile"]["name"]);
move_uploaded_file($_FILES["excelfile"]["tmp_name"], $target_file);
if ($_FILES["excelfile"]["error"] > 0)
{
    echo "Error: " . $_FILES["excelfile"]["error"] . "<br>";
}
else
{
    if (file_exists($target_file)) {
        echo "file exists!";
    }else{
        echo "oh it does not";
    }
    $objPHPExcel = PHPExcel_IOFactory::load($target_file);
}

我从输入文件中获取文件。我正在将文件移动到我服务器上的某个位置。但是一旦移动文件我就无法加载文件。我正在验证该文件是否存在,但当我在工厂调用load时,phpoffice不会获取我的文件并给出500错误。任何建议都可以帮助我,提前谢谢。

编辑:错误返回:

  

致命错误:未捕获错误:类&#39; ZipArchive&#39;找不到   /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php:94   堆栈跟踪:#0   /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php(268):   PHPExcel_Reader_Excel2007-&gt; canRead(&#39; coverImages / Boo ...&#39;)#1   /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php(191):   PHPExcel_IOFactory :: createReaderForFile(&#39; coverImages / Boo ...&#39;)#2   /app/public/upload_file.php(26):   PHPExcel_IOFactory :: load(&#39; coverImages / Boo ...&#39;)#3 {main}引入   /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php   第94行

在我的dockerfile中,我不知道为什么会出现错误:

RUN apt-get update && \
  apt-get install -y \
    freetds-dev \
    libsybdb5 \
    wget \
    zip

所以应该安装zip。

2 个答案:

答案 0 :(得分:0)

您错过了zip扩展程序。在php.ini文件中允许它或者安装它。

https://secure.php.net/manual/en/book.zip.php

答案 1 :(得分:0)

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

link的这一行和1.8.1的升级解决了这个问题。