PHP दस्तावेज़ एक अच्छा उदाहरण प्रदान करता है:
<?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;
}
?>
संपादित करें (टिप्पणी, स्पष्टीकरण का जवाब)
header('Content-Description: File Transfer');
ब्राउज़र में प्रदर्शित न करें, लेकिन फ़ाइल को स्थानांतरित करें।
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
फ़ाइल एक बाइनरी फ़ाइल है।
ब्राउज़र आमतौर पर बाइनरी फ़ाइलें डाउनलोड करते हैं, जब तक कि वे उन्हें प्रदर्शित नहीं कर सकते।
header('Content-Disposition: attachment; filename='.basename($file));
डाउनलोड डायलॉग को उचित फ़ाइल नाम दिखाएं।
नोट:आप किसी भी फ़ाइल नाम का उपयोग कर सकते हैं।
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
फ़ाइल को ब्राउज़र द्वारा कैश नहीं किया जाना चाहिए।
डायनामिक सामग्री के मामले में कैश समस्या पैदा कर सकता है।
header('Content-Length: ' . filesize($file));
ब्राउज़र को सही फ़ाइल आकार भेजें,
अन्यथा ब्राउज़र स्थानांतरण-समय का अनुमान लगाने में असमर्थ है।
ob_clean();
flush();
डाउनलोड शुरू होने से पहले सुनिश्चित करें कि हेडर ब्राउज़र को भेज दिए गए हैं।
readfile($file);
फ़ाइल को ब्राउज़र पर भेजें।
exit;
हो गया :)