Zgodnie z Twoim kodem, $row[1]
to „nazwa pliku”. Nagłówek Content type powinien zawierać content type zamiast tego, np. typ MIME pliku, na przykład:
header('Content-type: application/pdf');
Jeśli chcesz dodać nazwę pliku:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;
Upewnij się, że $data
to zawartość pliku, coś, co można pobrać z readfile()
na przykład.
Przeczytaj więcej w instrukcji:http://php.net/manual/en/function .readfile.php
Należy pamiętać, że chociaż pliki PDF i obrazy można łatwo przeglądać w przeglądarce, myślę, że Excel potrzebuje trochę ad hoc wtyczka do tego.
Pełniejszy przykład prosto z podręcznika , aby uzyskać dokładniejszy pomysł (nie wszystkie te nagłówki są potrzebne, a inne należy zmienić zgodnie z kodem):
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;