У меня есть файл excel, который я хочу, чтобы пользователь мог загружать с моего сервера. Я рассмотрел множество вопросов здесь, но я не могу найти способ правильно загрузить файл без коррупции. Я предполагаю, что это заголовки, но пока у меня не было рабочего сочетания. Это то, что у меня есть прямо сейчас, и в поврежденном файле, который я получаю, я могу увидеть имена столбцов, которые мне нужны, но все это испортилось.PHP, загружающий файл excel, становится поврежденным
$filename = '/var/www/web1/web/public/temporary/Spreadsheet.xls';
header("Content-type: application/octet-stream");
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=ExcelFile.xls;");
header("Pragma: no-cache");
header("Expires: 0");
readfile($filename);
редактировать: Решение Я забыл добавить, что я использую Zend и это развращает файлы при попытке использовать собственные методы PHP. Мой finsihed код был разместить ссылку на другое действие в мой контроллер и есть файлы скачать оттуда
public function downloadAction(){
$file = '/var/www/web1/web/public/temporary/Spreadsheet.xls';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="Spreadsheet.xls"');
readfile($file);
// disable the view ... and perhaps the layout
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
}
загрузив Я думаю, вы имеете в виду отображение в браузере? Вместо прямого скачивания файла –
вывод 2 заголовков содержимого бессмыслен - файл не может быть сразу двумя. это как сказать: «Я жираф и кит!». –
Долгий, длинный путь наиболее распространенным ответом на такие вопросы сводится к следующему: а) у вас есть ведущие/конечные пробелы/HTML до/после тегов '' в вашем скрипте или спецификации в вашем файл или b) вы забыли вызывать 'exit' /' die' после 'readfile()', и больше содержимого было выведено в конце ваших файлов. – DaveRandom