Mysql
 sql >> Baza danych >  >> RDS >> Mysql

za pomocą monitu przeglądarki, aby pobrać plik

Dokumentacja PHP dostarcza ładnego przykładu:

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

EDYTUJ (Odpowiedź na komentarz, wyjaśnienie)

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

Nie wyświetlaj w przeglądarce, ale prześlij plik.

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

Plik jest plikiem binarnym.
Przeglądarki generalnie pobierają pliki binarne, chyba że mogą je wyświetlić.

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

Spraw, aby okno dialogowe pobierania wyświetlało prawidłową nazwę pliku.
Uwaga:możesz użyć dowolnej nazwy pliku.

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

Plik nie powinien być buforowany przez przeglądarkę.
Pamięć podręczna może powodować problemy w przypadku zawartości dynamicznej.

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

Wyślij do przeglądarki prawidłowy rozmiar pliku,
w przeciwnym razie przeglądarka nie będzie w stanie oszacować czasu przesyłania.

ob_clean();
flush();

Upewnij się, że nagłówki są wysyłane do przeglądarki przed rozpoczęciem pobierania.

readfile($file);

Wyślij plik do przeglądarki.

exit;

Gotowe :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Typ danych wymagany w mysql dla daty zawierającej dzień-miesiąc-rok

  2. jak uzyskać najnowszy rekord lub rekord z maksymalną odpowiednią datą wszystkich odrębnych wartości w kolumnie w mysql?

  3. Jeśli transakcja PHP PDO nie powiedzie się, czy muszę jawnie wycofać ()?

  4. Błąd MySQL 150, nie można utworzyć tabeli

  5. MySQL:Uzyskaj sumę w ostatnim wierszu wyniku MySql