PHP स्क्रिप्ट के माध्यम से बड़ी फ़ाइलों को डाउनलोड करने के लिए, कोड इस प्रकार है -
उदाहरण
<?php function readfile_chunked($filename,$retbytes=true) { $chunksize = 1*(1024*1024); // how many bytes per chunk the user wishes to read $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; // return number of bytes delivered like readfile() does. } return $status; } ?>
आउटपुट
यह निम्नलिखित आउटपुट देगा -
The large file will be downloaded.
फ़ंक्शन 'readfile_chunked' (उपयोगकर्ता परिभाषित) दो पैरामीटर लेता है- फ़ाइल का नाम और बाइट्स की संख्या के लिए 'true' का डिफ़ॉल्ट मान जिसका अर्थ है कि बड़ी फ़ाइलें सफलतापूर्वक डाउनलोड की गई हैं। चर 'chunksize' को प्रति खंड बाइट्स की संख्या के साथ घोषित किया गया है जिसे पढ़ने की आवश्यकता है। 'बफर' वेरिएबल को शून्य पर असाइन किया गया है और 'cnt' को 0 पर सेट किया गया है। फ़ाइल को बाइनरी रीड मोड में खोला गया है और वेरिएबल 'हैंडल' को असाइन किया गया है।
'हैंडल' की फ़ाइल के अंत तक पहुंचने तक, जबकि लूप चलता है और फ़ाइल की सामग्री को पढ़ने के लिए आवश्यक टुकड़ों की संख्या के आधार पर पढ़ता है। इसके बाद यह स्क्रीन पर प्रदर्शित होता है। यदि 'रिटबाइट्स' (फ़ंक्शन का दूसरा पैरामीटर) का मान सत्य है, तो बफर की लंबाई 'cnt' चर में जोड़ दी जाती है। अन्यथा, फ़ाइल बंद हो जाती है और 'cnt' मान वापस आ जाता है। अंत में, फ़ंक्शन 'स्थिति' लौटाता है।