सुरक्षा उद्देश्यों के लिए PHP स्क्रिप्ट का उपयोग करके फ़ाइलों को स्थानांतरित करते समय, डाउनलोड करने योग्य फ़ाइलों का पूर्ण पथ अक्सर छुपाने की जरूरत पड़ती है. हालाँकि, पारंपरिक PHP फ़ाइल स्थानांतरण स्क्रिप्ट पुन: प्रारंभ करने योग्य डाउनलोड का समर्थन नहीं कर सकती हैं, जिससे कनेक्शन में रुकावट का अनुभव करने वाले अंतिम उपयोगकर्ताओं के लिए असुविधा हो सकती है। लिया गया:
एक्सेप्ट-रेंज भेजें: बाइट्स हेडर:
यह हेडर क्लाइंट को सूचित करता है कि आंशिक सामग्री समर्थित है।यह स्क्रिप्ट पहले जांच करती है कि क्या आंशिक सामग्री अनुरोध किया गया था। यदि ऐसा है, तो यह रेंज हेडर से रेंज को पार्स करता है, फ़ाइल में उचित ऑफसेट की तलाश करता है, और अनुरोधित बाइट रेंज भेजता है। स्क्रिप्ट एक्सेप्ट-रेंज हेडर को बाइट्स में भी सेट करती है और यदि आवश्यक हो तो आंशिक सामग्री के लिए उचित HTTP स्टेटस कोड भेजती है।
$filesize = filesize($file); $offset = 0; $length = $filesize; if (isset($_SERVER['HTTP_RANGE'])) { preg_match('/bytes=(\d )-(\d )?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = intval($matches[2]) - $offset; } $file = fopen($file, 'r'); fseek($file, $offset); $data = fread($file, $length); fclose($file); if ($offset > 0) { header('HTTP/1.1 206 Partial Content'); header('Content-Range: bytes ' . $offset . '-' . ($offset $length) . '/' . $filesize); } header('Content-Type: ' . $ctype); header('Content-Length: ' . $filesize); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Accept-Ranges: bytes'); print($data);
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3