PHP में फाइल कैसे डाउनलोड करें

How Download File Php



आम तौर पर, एक्सटेंशन वाली फ़ाइल को डाउनलोड करने के लिए किसी PHP स्क्रिप्ट की आवश्यकता नहीं होती है प्रोग्राम फ़ाइल तथा ज़िप . यदि इस प्रकार की फ़ाइल का फ़ाइल स्थान में सेट है href एंकर तत्व की विशेषता, तब फ़ाइल स्वचालित रूप से डाउनलोड हो जाती है जब उपयोगकर्ता डाउनलोड लिंक पर क्लिक करता है। कुछ फ़ाइलें, जैसे छवि फ़ाइलें, पीडीएफ फ़ाइलें, मूलपाठ फ़ाइलें, सीएसवी फ़ाइलें, आदि, स्वचालित रूप से डाउनलोड नहीं होती हैं, और इसके बजाय, जब उपयोगकर्ता डाउनलोड लिंक पर क्लिक करता है तो ब्राउज़र में खुल जाता है। इन फ़ाइलों का उपयोग करके PHP में जबरन डाउनलोड किया जा सकता है रीडफाइल () फ़ंक्शन जो स्वचालित रूप से डाउनलोड नहीं होता है। यह ट्यूटोरियल आपको दिखाता है कि PHP स्क्रिप्ट का उपयोग करके किसी भी फाइल को जबरन कैसे डाउनलोड किया जाए।

डाउनलोड लिंक की जाँच करें

यह पहले उल्लेख किया गया था कि ज़िप तथा प्रोग्राम फ़ाइल PHP स्क्रिप्ट का उपयोग किए बिना फ़ाइलें स्वचालित रूप से डाउनलोड हो जाती हैं। सबसे पहले, निम्न कोड के साथ एक HTML फ़ाइल बनाएं। यहां, चार एंकर तत्वों को चार प्रकार की फाइलों को डाउनलोड करने के लिए परिभाषित किया गया है। इन फ़ाइल प्रकारों में TEXT, ZIP, PDF और JPG फ़ाइलें शामिल हैं।







download.html



< एचटीएमएल >
< सिर >
< शीर्षक >फ़ाइलें डाउनलोड करें</ शीर्षक >
</ सिर >
< तन >
< पी >< प्रति href='abc.txt'>टेक्स्ट फ़ाइल डाउनलोड करें</ प्रति ></ पी >
< पी >< प्रति href='क्षितिज.ज़िप'>ज़िप फ़ाइल डाउनलोड करें</ प्रति ></ पी >
< पी >< प्रति href='व्याख्यान.पीडीएफ'>पीडीएफ फाइल डाउनलोड करें</ प्रति ></ पी >
< पी >< प्रति href='गुलाब.जेपीजी'>जेपीजी फाइल डाउनलोड करें</ प्रति ></ पी >
</ तन >
</ एचटीएमएल >

उत्पादन
ज़िप फ़ाइल लिंक पर क्लिक करने के बाद फ़ाइल डाउनलोड करने के लिए निम्न संवाद बॉक्स दिखाई देगा। उपयोगकर्ता तब फ़ाइल डाउनलोड कर सकता है या संग्रह प्रबंधक में फ़ाइल खोल सकता है।




यदि आप छवि फ़ाइल पर क्लिक करते हैं, तो छवि ब्राउज़र में स्वचालित रूप से खुल जाएगी, जैसा कि निम्न आउटपुट में दिखाया गया है। स्थानीय ड्राइव में छवि फ़ाइल की प्रतिलिपि बनाने के लिए आपको फ़ाइल को सहेजना होगा। इसी तरह जब आप PDF और TEXT फाइल लिंक्स पर क्लिक करेंगे तो फाइल का कंटेंट बिना फाइल को डाउनलोड किए ही ब्राउजर में खुल जाएगा। इस समस्या का समाधान अंतर्निहित PHP का उपयोग करके फ़ाइल को जबरन डाउनलोड करना है रीडफाइल () समारोह।





रीडफाइल () फ़ंक्शन का उपयोग करके फ़ाइल डाउनलोड करें

NS रीडफाइल () PHP स्क्रिप्ट में फ़ंक्शन का उपयोग वर्तमान स्थान की किसी भी फ़ाइल या फ़ाइल पथ वाली फ़ाइल को जबरन डाउनलोड करने के लिए किया जाता है। इस फ़ंक्शन का सिंटैक्स नीचे दिया गया है।



वाक्य - विन्यास
इंट रीडफाइल (स्ट्रिंग $ फ़ाइल नाम [, बूल $ use_include_path = असत्य [, संसाधन $ संदर्भ]])

यह फ़ंक्शन तीन तर्क ले सकता है। पहला तर्क अनिवार्य है, और अन्य दो तर्क वैकल्पिक हैं। पहला तर्क, $फ़ाइलनाम , फ़ाइल नाम या फ़ाइल नाम को उस पथ के साथ संग्रहीत करता है जो डाउनलोड होगा। दूसरे पैरामीटर का डिफ़ॉल्ट मान, $use_include_path , गलत है और अगर पथ के साथ फ़ाइल नाम का उपयोग पहले तर्क में किया जाता है तो इसे सत्य पर सेट किया जाएगा। तीसरा तर्क, $संदर्भ , संदर्भ स्ट्रीम संसाधन को इंगित करने के लिए उपयोग किया जाता है। यह फ़ंक्शन पहले तर्क में उल्लिखित फ़ाइल से पढ़े गए बाइट्स की संख्या देता है। इस फ़ंक्शन के उपयोग निम्नलिखित दो उदाहरणों में दिखाए गए हैं।

उदाहरण 1: फ़ाइल नाम के साथ फ़ाइल डाउनलोड करें

इस उदाहरण में, हम निम्नलिखित कोड के साथ एक HTML फ़ाइल बनाएंगे, जहाँ फ़ाइल नाम को URL के पैरामीटर के रूप में पास किया जाएगा पथ , और इस पैरामीटर का मान नाम की PHP फ़ाइल को दिया जाएगा डाउनलोड.php .

डाउनलोड2.html

< एचटीएमएल >
< सिर >
< शीर्षक > फ़ाइलें डाउनलोड करें</ शीर्षक >
</ सिर >
< तन >
< पी >< प्रति href='download.php?path=abc.txt'>डाउनलोड करेंमूलपाठफ़ाइल</ प्रति ></ पी >
< पी >< प्रति href='download.php?path=horizon.zip'>ज़िप फ़ाइल डाउनलोड करें</ प्रति ></ पी >
< पी >< प्रति href='download.php?path=lecture.pdf'>पीडीएफ फाइल डाउनलोड करें</ प्रति ></ पी >
< पी >< प्रति href='download.php?path=rose.jpg'>जेपीजी फाइल डाउनलोड करें</ प्रति ></ पी >
</ तन >
</ एचटीएमएल >

हम फ़ाइल को जबरन डाउनलोड करने के लिए निम्न कोड के साथ PHP फ़ाइल बनाएंगे। यहां ही गया) फ़ंक्शन का उपयोग यह जांचने के लिए किया जाता है कि क्या $_GET['पथ'] परिभषित किया। यदि चर परिभाषित किया गया है, तो फाइल मौजूद है() फ़ंक्शन का उपयोग यह जांचने के लिए किया जाता है कि फ़ाइल सर्वर में मौजूद है या नहीं। अगला, हैडर () फ़ंक्शन का उपयोग करने से पहले आवश्यक शीर्षलेख जानकारी सेट करने के लिए उपयोग किया जाता है रीडफाइल () समारोह। NS बेसनाम () फ़ाइल नाम को पुनः प्राप्त करने के लिए फ़ंक्शन का उपयोग किया जाता है, और फाइल का आकार() फ़ंक्शन का उपयोग फ़ाइल के आकार को बाइट्स में पढ़ने के लिए किया जाता है, जो फ़ाइल को डाउनलोड करने के लिए ओपनिंग डायलॉग बॉक्स में दिखाया जाएगा। NS फ्लश () फ़ंक्शन का उपयोग आउटपुट बफर को साफ़ करने के लिए किया जाता है। NS रीडफाइल () फ़ंक्शन का उपयोग केवल फ़ाइल नाम के साथ किया जाता है, यहाँ।

डाउनलोड.php



अगर( गया ($_GET['पथ']))
{
// फ़ाइल नाम पढ़ें
$फ़ाइलनाम = $_GET['पथ'];
// जांचें कि फ़ाइल मौजूद है या नहीं
अगर( फाइल मौजूद है ($फ़ाइलनाम)) {

// हेडर जानकारी को परिभाषित करें
हैडर ('सामग्री-विवरण: फ़ाइल स्थानांतरण');
हैडर ('सामग्री-प्रकार: एप्लिकेशन/ऑक्टेट-स्ट्रीम');
हैडर ('कैश-कंट्रोल: नो-कैश, जरूरी-पुनरीक्षित');
हैडर ('समाप्ति: 0');
हैडर ('सामग्री-स्वभाव: लगाव; फ़ाइल नाम = ''. बेसनाम ($फ़ाइलनाम).'' ');
हैडर ('कंटेंट की लम्बाई: ' . फाइल का आकार ($फ़ाइलनाम));
हैडर ('प्रगमा: पब्लिक');

// सिस्टम आउटपुट बफर साफ़ करें
लालिमा ();

// फ़ाइल का आकार पढ़ें
रीडफाइल ($फ़ाइलनाम);

// स्क्रिप्ट से समाप्त करें
NS ();
}
अन्यथा{
फेंक दिया 'फ़ाइल मौजूद नहीं है।';
}
}
अन्यथा
फेंक दिया 'फ़ाइल नाम परिभाषित नहीं है।'
?>

उत्पादन
छवि फ़ाइल के डाउनलोड लिंक पर क्लिक करने के बाद निम्न आउटपुट दिखाई देगा। फ़ाइल का आकार गुलाब.जेपीजी छवि है 27.2 केबी , जैसा कि डायलॉग बॉक्स में दिखाया गया है। आप का चयन करके फ़ाइल डाउनलोड कर सकते हैं फाइल सुरक्षित करें रेडियो बटन और दबाने ठीक है बटन।

उदाहरण 2: फ़ाइल पथ के साथ फ़ाइल डाउनलोड करें

यदि फ़ाइल दिए गए फ़ाइल स्थान पर मौजूद है, तो URL में फ़ाइल पथ का उल्लेख करना आवश्यक होगा। इस उदाहरण में, हम निम्नलिखित कोड के साथ एक HTML फ़ाइल बनाएंगे, जो फ़ाइल पथ के साथ फ़ाइल नाम पास करेगी:

डाउनलोड3.html

< एचटीएमएल >
< सिर >
< शीर्षक >फ़ाइलें डाउनलोड करें</ शीर्षक >
</ सिर >
< तन >
< पी >< प्रति href='download.php?path=downloads/lecture.pdf'>पीडीएफ फाइल डाउनलोड करें</ प्रति ></ पी >
< पी >< प्रति href='download2.php?path=downloads/rose.jpg'>जेपीजी फाइल डाउनलोड करें</ प्रति ></ पी >
</ तन >
</ एचटीएमएल >

फ़ाइल पथ से फ़ाइल डाउनलोड करने के लिए हम निम्न कोड के साथ एक PHP फ़ाइल बनाएंगे। पिछले उदाहरण में PHP कोड को दिए गए पथ से फ़ाइल डाउनलोड करने के लिए थोड़ा संशोधित किया जाएगा। NS क्लियरस्टेट कैश () फ़ंक्शन का उपयोग पहले संग्रहीत कैश को साफ़ करने के लिए किया जाता है। में दो तर्कों का प्रयोग किया जाता है रीडफाइल () समारोह।

डाउनलोड2.php


अगर( गया ($_GET['पथ']))
{
// यूआरएल पढ़ें
$url = $_GET['पथ'];

// कैश साफ़ करें
क्लियरस्टैट कैश ();

// जांचें कि फ़ाइल पथ मौजूद है या नहीं
अगर( फाइल मौजूद है ($url)) {

// हेडर जानकारी को परिभाषित करें
हैडर ('सामग्री-विवरण: फ़ाइल स्थानांतरण');
हैडर ('सामग्री-प्रकार: एप्लिकेशन/ऑक्टेट-स्ट्रीम');
हैडर ('सामग्री-स्वभाव: लगाव; फ़ाइल नाम = ''. बेसनाम ($url).'' ');
हैडर ('कंटेंट की लम्बाई: ' . फाइल का आकार ($url));
हैडर ('प्रगमा: पब्लिक');

// सिस्टम आउटपुट बफर साफ़ करें
लालिमा ();

// फ़ाइल का आकार पढ़ें
रीडफाइल ($url,सच);

// स्क्रिप्ट से समाप्त करें
NS ();
}
अन्यथा{
फेंक दिया 'फ़ाइल पथ मौजूद नहीं है।';
}
}
फेंक दिया 'फ़ाइल पथ परिभाषित नहीं है।'

?>

उत्पादन
पीडीएफ फाइल के डाउनलोड लिंक पर क्लिक करने के बाद, निम्न आउटपुट दिखाई देगा।

वीडियो ट्यूटोरियल

निष्कर्ष

इस लेख ने PHP स्क्रिप्ट का उपयोग करके किसी भी फ़ाइल को जबरन डाउनलोड करने का एक आसान तरीका प्रदान किया, ताकि पाठकों को उनकी स्क्रिप्ट में डाउनलोड सुविधा जोड़ने में मदद मिल सके।