2009-12-28 10 views
15

में डाउनलोड फ़ाइल लिंक जेनरेट करें:
open download dialog with phpसंभव डुप्लिकेट पीएचपी

मैं अपने पृष्ठ में एक कड़ी का कहना है, <a href='test.pdf'>(Test.pdf)</a>। जब मैं उस लिंक पर क्लिक करता हूं, तो उस फ़ाइल को डाउनलोड करने के लिए संवाद बॉक्स को खोलना चाहिए। क्या कोई इसे PHP में लागू करने में मेरी सहायता कर सकता है?

धन्यवाद

+0

यहां आप यहां जाएं: http://stackoverflow.com/questions/985083/open-download-dialog-with-php http://stackoverflow.com/questions/732063/how-to-show-save-as- संवाद-बॉक्स-उपयोग-php-for-text-files – codaddict

+0

यह उन प्रश्नों का डुप्लिकेट नहीं है। वे एक डाउनलोड संवाद उत्पन्न करना चाहते हैं, यह एक ब्राउज़र को ब्राउज़र में फ़ाइल खोलने के बजाय डाउनलोड को मजबूर करना चाहता है। जिसमें एचटीएमएल 5 डाउनलोड एट्रिब्यूट कर सकता है कि ' ' – sidonaldson

उत्तर

32
$filename = 'Test.pdf'; // of course find the exact filename....   
header('Pragma: public'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Cache-Control: private', false); // required for certain browsers 
header('Content-Type: application/pdf'); 

header('Content-Disposition: attachment; filename="'. basename($filename) . '";'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: ' . filesize($filename)); 

readfile($filename); 

exit; 

नाम के रूप में download.php

एचटीएमएल ऊपर फ़ाइल:

<a href="download.php">Test.pdf</a> 

कि यह करना चाहिए।

+0

डाउनलोड की गई पीडीएफ फ़ाइल नहीं खुलती है यह कहती है कि फ़ाइल सही ढंग से डीकोड नहीं की गई है? –

+1

यह मेरे लिए काम करता है –

+0

@JacobRelkin त्वरित प्रश्न। क्या आप तर्कों में गुजर सकते हैं? Download.php की तरह? Filecode = 1234 और हेडर फ़ंक्शंस भरने के लिए उन का उपयोग करें? या हेडर को किसी भी अन्य कॉल से पहले बुलाया जाना है। उदाहरण: '' '' $ filename = $ _get ['filecode'] '' '' – Caperneoignis

2

पीडीएफ फाइल के मामले में, अधिकांश ब्राउज़र डिफ़ॉल्ट रूप से अपने ब्राउज़र में इसे लोड करने के लिए सहायक (एक्रोबैट) की तलाश में जा रहे हैं। आप इस डिफ़ॉल्ट व्यवहार को पाने का प्रयास कर रहे हैं मेरा अनुमान है।

यह करने के लिए सबसे आसान तरीका निर्देशिका में .htaccess फ़ाइल आप इस परिणाम है और लाइन जोड़ना चाहते हैं बनाने के लिए (यह मानते हुए आप अपाचे के साथ * nix बॉक्स पर हैं) है:

AddType आवेदन/octet-stream .pdf

इससे किसी भी फ़ाइल को विस्तार से पीडीएफ डाउनलोड करने के लिए डिफ़ॉल्ट रूप से डाउनलोड किया जाएगा। आप ब्राउज़र में पृष्ठ लोड पर कुछ .pdf फ़ाइलों को भी प्राप्त कर सकते हैं जबकि अन्य फ़ाइलेंमैच निर्देश (http://www.askapache.com/htaccess/using-filesmatch-and-files-in-htaccess.html) का उपयोग कर डाउनलोड करते हैं।

मुझे पता है कि आपका मूल प्रश्न "मैं PHP के साथ ऐसा कैसे करूं" लेकिन मैंने सोचा कि अगर आप एक सरल, अधिक सुरुचिपूर्ण समाधान की तलाश में हैं तो मैं पोस्ट करूंगा। ध्यान रखें कि आपके द्वारा .htaccess फ़ाइल में डाले गए किसी भी निर्देश से नीचे की किसी भी उप-निर्देशिका को भी प्रभावित किया जाएगा।

संबंधित मुद्दे