来自php:// memory的PHPExcel_IOFactory :: load()

时间:2015-04-07 13:58:49

标签: php phpexcel

我正在尝试从'php:// memory'流加载excel文件。

这是我的代码:

$path = 'http://<server>/test.xls';

$temp_file = fopen('php://memory', 'w+');

$file_contents = file_get_contents($path);
fwrite($temp_file, $file_contents);

$objPHPExcel = PHPExcel_IOFactory::load($temp_file);
fclose($temp_file);

我收到了这些错误:

PHP Warning:  pathinfo() expects parameter 1 to be string, resource given in /var/resources/classes/PHPExcel/IOFactory.php on line 224
PHP Warning:  file_exists() expects parameter 1 to be a valid path, resource given in /var/resources/classes/PHPExcel/Reader/Excel2007.php on line 81
PHP Fatal error:  Uncaught exception 'PHPExcel_Reader_Exception' with message 'Could not open Resource id #15 for reading! File does not exist.' in /var/resources/classes/PHPExcel/Reader/Excel2007.php:82
Stack trace:
#0 /var/resources/classes/PHPExcel/IOFactory.php(280): PHPExcel_Reader_Excel2007->canRead(Resource id #15)
#1 /var/resources/classes/PHPExcel/IOFactory.php(191): PHPExcel_IOFactory::createReaderForFile(Resource id #15)
#2 /var/www/syncDB.php(113): PHPExcel_IOFactory::load(Resource id #15)
#3 {main}
  thrown in /var/resources/classes/PHPExcel/Reader/Excel2007.php on line 82

我不想将.xls文件写入磁盘。我试图使用tmpfile(),但我仍然遇到同样的问题。 我的代码有问题吗?或者我不可避免地需要传递磁盘上文件的路径以便'PHPExcel_IOFactory :: load'才能使用?

在这里可能值得一提的是,'{3}}上的'Mark Ba​​ker'答案表明使用php:// memory应该是可能的。

0 个答案:

没有答案