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.