sql >> Databáze >  >> RDS >> Mysql

pomocí výzvy prohlížeče ke stažení souboru

dokumentace PHP poskytuje pěkný příklad:

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    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;
}
?>

UPRAVIT (Odpověď na komentář, vysvětlení)

header('Content-Description: File Transfer');

Nezobrazovat v prohlížeči, ale přenést soubor.

header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');

Soubor je binární soubor.
Prohlížeče obvykle stahují binární soubory, pokud je neumí zobrazit.

header('Content-Disposition: attachment; filename='.basename($file));

Zajistěte, aby se v dialogovém okně stahování zobrazil správný název souboru.
Poznámka:Můžete použít libovolný název souboru.

header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');

Soubor by prohlížeč neměl ukládat do mezipaměti.
Cache může způsobit potíže v případě dynamického obsahu.

header('Content-Length: ' . filesize($file));

Odešlete do prohlížeče správnou velikost souboru,
jinak prohlížeč nedokáže odhadnout dobu přenosu.

ob_clean();
flush();

Před zahájením stahování se ujistěte, že jsou záhlaví odeslána do prohlížeče.

readfile($file);

Odešlete soubor do prohlížeče.

exit;

Hotovo :)




  1. SQL dotaz k nalezení počtu společných přátel podle tabulky osoba, přítel pár

  2. Jak se vyhnout chybám při mutování tabulky

  3. Sloučit překrývající se časové intervaly, jak?

  4. Jak automaticky zvýšit o 2 pro konkrétní tabulku v mysql