sql >> Database teknologi >  >> RDS >> Mysql

ved at bruge browserprompten for at downloade en fil

PHP-dokumentationen giver et godt eksempel:

<?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;
}
?>

REDIGER (Svar på kommentar, forklaring)

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

Vis ikke i browseren, men overfør filen.

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

Filen er en binær fil.
Browsere downloader generelt binære filer, medmindre de kan vise dem.

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

Få downloaddialogen til at vise det korrekte filnavn.
Bemærk:Du kan bruge et hvilket som helst filnavn.

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

Filen bør ikke cachelagres af browseren.
Cache kan forårsage problemer i tilfælde af dynamisk indhold.

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

Send den korrekte filstørrelse til browseren,
ellers er browseren ikke i stand til at estimere overførselstiden.

ob_clean();
flush();

Sørg for, at overskrifterne sendes til browseren, før overførslen starter.

readfile($file);

Send filen til browseren.

exit;

Færdig :)




  1. Oracle Run Procedure med én ind-parameter og flere ud-parameter

  2. php konverter array til et hierarkisk indlejret sæt til database

  3. MVC4:UserIsInRole - Kan ikke oprette forbindelse til SQL Server-databasen

  4. Valg af tilfældige rækker