PHP स्क्रिप्ट के माध्यम से बड़ी फ़ाइलें डाउनलोड करने के लिए, कोड निम्नानुसार है:
उदाहरण
<?php
function readfile_chunked($filename, $retbytes = true) {
$chunksize = 1 * (1024 * 1024); // प्रति चंक कितने बाइट्स पढ़ने हैं
$buffer = '';
$cnt = 0;
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
if ($retbytes) {
$cnt += strlen($buffer);
}
}
$status = fclose($handle);
if ($retbytes && $status) {
return $cnt; // readfile() की तरह डिलीवर किए गए बाइट्स की संख्या लौटाता है
}
return $status;
}
?>
आउटपुट
यह निम्न आउटपुट देगा:
बड़ी फ़ाइल डाउनलोड हो जाएगी।
'readfile_chunked' फ़ंक्शन (उपयोगकर्ता परिभाषित) दो पैरामीटर लेता है - फ़ाइल का नाम और बाइट्स लौटाने के लिए 'true' का डिफ़ॉल्ट मान, जिसका अर्थ है कि बड़ी फ़ाइलें सफलतापूर्वक डाउनलोड हो गई हैं। 'chunksize' वेरिएबल को प्रति चंक पढ़े जाने वाले बाइट्स की संख्या के साथ घोषित किया गया है। 'buffer' वेरिएबल को null असाइन किया गया है और 'cnt' को 0 पर सेट किया गया है। फ़ाइल को बाइनरी रीड मोड में खोला जाता है और 'handle' वेरिएबल को असाइन किया जाता है।
'handle' के अंत तक पहुंचने तक, while लूप चलता है और फ़ाइल की सामग्री को पढ़ता है जो पढ़े जाने वाले चंक्स की संख्या पर आधारित होती है। फिर इसे स्क्रीन पर प्रदर्शित करता है। यदि 'retbytes' (फ़ंक्शन का दूसरा पैरामीटर) का मान true है, तो बफर की लंबाई 'cnt' वेरिएबल में जोड़ दी जाती है। अन्यथा, फ़ाइल बंद हो जाती है और 'cnt' मान लौटाया जाता है। अंत में, फ़ंक्शन 'status' लौटाता है।