Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

menggunakan prompt browser untuk mengunduh file

Dokumentasi PHP memberikan contoh yang bagus:

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

EDIT (Tanggapan komentar, penjelasan)

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

Jangan tampilkan di browser, tapi transfer filenya.

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

File adalah file biner.
Browser biasanya mengunduh file biner, kecuali mereka dapat menampilkannya.

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

Buat dialog unduhan menunjukkan nama file yang tepat.
Catatan:Anda dapat menggunakan nama file apa pun.

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

File tidak boleh di-cache oleh browser.
Cache dapat menyebabkan masalah jika konten dinamis.

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

Kirim ukuran file yang benar ke browser,
jika tidak, browser tidak dapat memperkirakan waktu transfer.

ob_clean();
flush();

Pastikan header dikirim ke browser sebelum pengunduhan dimulai.

readfile($file);

Kirim file ke browser.

exit;

Selesai :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Dari enum ke masalah tinyint

  2. Bagaimana cara menduplikasi tabel dengan kunci &fitur struktur lainnya yang dipertahankan di MySQL?

  3. Bergabung dengan tabel yang berbeda berdasarkan nilai kolom

  4. PHP MySQL INSERT mengembalikan nilai dengan satu eksekusi kueri

  5. Codeigniter:Saya ingin membuat URL pengguna untuk pengguna saya ketika mereka membuat nama pengguna