Возможно, PhpSpreadsheet временно недоступен или он постоянно перемещен на новый веб-адрес. - PullRequest
0 голосов
/ 03 октября 2019

Я использую PhpSpreadsheet https://github.com/PHPOffice/PhpSpreadsheet для генерации для своего проекта, и я использую панель plesk с версией php 5.6. Когда я пытаюсь загрузить файл Excel, я получаю сообщение об ошибке, возможно, временно отключено или оно может быть перемещенонавсегда на новый веб-адрес. ERR_INVALID_RESPONSE

Я использую код

<?php 
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Reader\Html;

$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();

$rand = md5(rand());
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$rand.'.xlsx"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 
header('Cache-Control: cache, must-revalidate'); 
header('Pragma: public');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
exit;

Этот код работает на другом сервере, но не на панели plesk

Если я использую

<?php 
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Reader\Html;

$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();

$rand = md5(rand());
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$rand.'.xlsx"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 
header('Cache-Control: cache, must-revalidate'); 
header('Pragma: public');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
exit;

Файл сохраняется на сервере, но мне нужно загрузить файл в браузер.

На сервере включены расширения php php_zip, php_xml и php gd2.

...