मेरे पास एक php फ़ाइल है जो उन सभी फ़ाइलों के लिए द्वारपाल के रूप में कार्य करती है जिन्हें मैं लोगों को डाउनलोड करना चाहता हूं, जो पर्याप्त निजीकरण प्राप्त करते हैं।उपयोगकर्ताओं को आवश्यक अनुमति के साथ कैसे php के माध्यम से फ़ाइल डाउनलोड करने दें?
कोड मैं उपयोगकर्ता के लिए फ़ाइल फेंक का उपयोग
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-disposition: attachment; filename=\"".$public_filename."\"");
header("Content-Transfer-Encoding: Binary");
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-length: ".$f_filesize);
readfile($file_path);
अधिकांश फ़ाइलें काफी बड़ी .... 400MB-10GB कर रहे हैं।
ऐसा करने का एक अच्छा तरीका क्या होगा, और सही स्थान + फ़ाइल नाम गुप्त रखें, इसलिए लोग सीधे फाइलों से लिंक नहीं कर सकते हैं, लेकिन मेरे download.php? File = आईडी गेटकीपर के माध्यम से लिंक करना है?
धन्यवाद
संपादित करें: मैं कैसे उपयोगकर्ता प्रमाणीकरण करने के लिए नहीं कह, वह सब किया जाता है। मैं सिर्फ यह पूछ रहा हूं कि ऐसा करने का मेरा तरीका, बड़े पैमाने पर एक अच्छा विचार है। ऐसा लगता है कि अगर मैं 10 जीबी फाइलें पढ़ता रहता हूं तो यह स्मृति समस्याओं का कारण बन सकता है।
मुझे लगता है कि तुम भी कुछ सेकंड के बाद फ़ाइल (यहाँ, लिंक) अनलिंक कर सकते हैं, मैं वर्तमान डाउनलोड के लिए काम करेंगे। जैसे ही आप फ़ाइल बना सकते हैं, इसे खोलें, हटाएं, फिर इसे पढ़ें। – Aif
उसे नहीं पता था, शांत! आपको यह जांचना होगा कि यह उपयोगकर्ताओं को डाउनलोड निरस्त करने और फिर से शुरू करने के साथ कैसे काम करता है। (फ़ाइलों के साथ इस बड़े मुझे लगता है कि हम डाउनलोड यह मान सकते हैं बाधित होगा हो?) – 0scar
तुम भी कुकीज़ में दुकान टोकन कर सकते हैं और नियम जो फ़ाइल पथ में कुकी परिणत हो गया फिर से लिखने की है। यदि आप कुकी सेट नहीं हैं या सिमलिंक मौजूद नहीं है तो आप मूल फ़ाइल नामों के साथ अच्छे यूआरएल प्राप्त कर सकते हैं और PHP स्क्रिप्ट दिखा सकते हैं। – Ski