Я использую потоки для загрузки файла excel. Вы можете найти код нижеZF2 - Загрузить xls показать две пустые строки в загруженном листе
$response = new \Zend\Http\Response\Stream();
$response->setStream(fopen($myfile, 'r'));
$response->setStatusCode(200);
$headers = new \Zend\Http\Headers();
$headers->addHeaderLine("Content-Type: application/vnd.ms-excel; charset=UTF-8")
->addHeaderLine('Content-Disposition', 'attachment; filename=my.xls')
->addHeaderLine("Content-Transfer-Encoding: binary")
->addHeaderLine('Content-Length', filesize($myfile));
$response->setHeaders($headers);
Файл генерируется собственно, но когда тот же файл, я в жизнь пользователю загружать есть две пустые строки, приезжающие в загруженном файле Excel. Я изучал и думал, что это http-версия и строки заголовка, но я думаю, что это не потому, что если я попробую иначе, я получу две пустые строки в начале отчета Excel.
Обратите внимание: в начале содержимого нет свободного места.
Любая идея ?? почему это так?
$ content = "hello"; $ response = $ this-> getResponse(); $ response-> setContent ($ content); $ response-> getHeaders() -> addHeaderLine ('Pragma', 'public') -> addHeaderLine ('Cache-control', 'must-revalidate, post-check = 0, pre-check = 0') -> addHeaderLine ('Cache-control', 'private') -> addHeaderLine ("Content-Type: application/vnd.ms-excel; charset = UTF-8") -> addHeaderLine ("Content-Transfer- Кодирование: двоичный ") -> addHeaderLine ('Content-Length', strlen ($ content)) -> addHeaderLine ('Content-Disposition', 'attachment; filename = my.xls'); – user269867
в листе exccel также идет после двух пустых строк .... можете ли вы поделиться, как я могу отладить проблему. – user269867
Вы можете попробовать сравнить два файла: один на вашем сервере и тот, который вы загружаете. Если есть какая-то разница, вы знаете, откуда она взялась. Легче отлаживать текстовые файлы, такие как простой .txt или более сопоставимый с excel, .csv. Excel - это двоичный формат, но проблема возникает и с. CSV-файлами? –