Nagłówek PHP xlsx

więc to działa:

myphpfile.php:

<code><?php
header('Content-disposition: attachment; filename=myfile.pdf');
header('Content-type: application/pdf');
readfile('myfile.pdf');
?> 
</code>

ten plik php jest wywoływany tutaj, a pobieranie plików PDF działa poprawnie:

<code><a class = "oglasavanje" href = "../../cjenik/myphpfile.php">download</a><br/>
</code>

ale to nie działa:

<code><?php
header('Content-disposition: attachment; filename=myfile.xlsx');
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
readfile('myfile.xlsx');
?>
</code>

pliki .pdf i .xlsx znajdują się w tym samym folderze. Kiedy klikam link „pobierz”, pojawia się okno pobierania, zapisuję plik, ale nie można otworzyć pliku. Daje mi następujący błąd:

Excel nie może otworzyć pliku „myfile.xlsx”, ponieważ format pliku lub rozszerzenie pliku jest niepoprawne. Sprawdź, czy plik nie został uszkodzony, a rozszerzenie pliku jest zgodne z formatem pliku.

Plik otwiera się dobrze, gdy otwieram go ręcznie (tj. Bez pobierania go przez link)

Używam WAMP, jeśli to ma znaczenie.

Każda pomoc jest doceniana.

--- EDYTOWAĆ ---

Znalazłem ten fragment kodu na php.net:

<code>ob_clean();
flush();
</code>

więc ostateczny kod wygląda tak i działa:

<code>$file = "myfile.xlsx";
header('Content-disposition: attachment; filename='.$file);
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Length: ' . filesize($file));
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
ob_clean();
flush(); 
readfile($file);
</code>

Dziękuję wszystkim za odpowiedzi.

questionAnswers(3)

yourAnswerToTheQuestion