Ни один из уже существующих вопросов не помог мне.
Я пытаюсь принудительно загрузить файл Excel с типом файла .xlsx
. Он отлично работает в коде загрузки, подобном следующему:
echo "<a href='" . $dateiname . "'>Datei herunterladen</a>";
Но всякий раз, когда я пытаюсь сделать принудительную загрузку, это не работает. Я пробовал разные заголовки из разных вопросов на stackoverflow, последние два:
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $dateiname . '"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Pragma: no-cache');
header('Content-Length: ' . filesize($dateiname));
$objWriter->save('php://output');
и
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Transfer-Encoding: binary ");
header('Content-Disposition: attachment; filename='.basename($dateiname));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($dateiname));
$objWriter->save('php://output');
Я пробовал оба в том же файле, где я создаю файл, но также и в отдельном файле, но в любом случае я всегда получаю ошибку:
Excel не может открыть файл (имя файла), так как формат файла или расширение файла недопустимы. Убедитесь, что файл не был поврежден и что расширение файла соответствует формату файла.
Сам файл на моем сервере выглядит отлично.