Jak zasugerować przeglądarce nazwę pliku do zapisania?

Z PHPEdia.pl
Skocz do: nawigacji, wyszukiwania
<?
$strFilename = 'sciezka-do-pliku-ktory-chcemy-zapisac';
$strName = 'sugerowana-nazwa-dla-zapisywanego-pliku';
 
// przeslanie wielkosci pliku w bajtach
$intSize = filesize($strFilename);
header('Content-Length: ' . $intSize . ';');
 
//najważniejsza linijka. Sugeruje przeglądarce nazwę dla pliku który zapisuje
header('Content-Disposition: attachment; filename=' . $strName); 
echo file_get_contents($strFilename);
?>

Cała trudność polega na wysłaniu w odpowiednim miejscu odpowiedniego nagłówka HTTP. Powyższy skrypt spowoduje, że przeglądarka otworzy okienko dialogowe zapisu pliku, którego ścieżkę podaliśmy w zmiennej $strFilename, z nazwę podaną w zmiennej $strName. Najpierw wysyłane są odpowiednie nagłówki HTTP, następnie zawartość pliku (wczytana za pomocą funkcji file_get_contents()) wysyłana jest do przeglądarki za pomocą funkcji echo.


Jest to element FAQ, czyli zestawienia odpowiedzi na najczęściej zadawane pytania.

Zestawienie: Informacje | Podstawy PHP | Porady praktyczne | Pytania z forum | Bezpieczeństwo