2010-07-20 20 views
6

मैं इसPHP: डाउनलोड मजबूर करने के बाद सामग्री प्रदर्शित करें?

<?php 

if (file_exists("./foo.txt")) { 

    header("Content-type: application/force-download"); 
    header("Content-length: ".filesize("./foo.txt")); 
    header('Content-Disposition: attachment; filename="foo.txt"'); 
    readfile('./foo.txt'); 
} 

print "HEY!"; 

?> 

की तरह एक स्क्रिप्ट मिल गया और मैं "अरे" मजबूर डाउनलोड करने के बाद पृष्ठ पर लिखा जा करना चाहते हैं, कैसे संभव है?

मैं डाउनलोड पेज देखता हूं जैसे "यदि आपका डाउनलोड स्वचालित रूप से प्रारंभ नहीं होता है", तो यह सामग्री और डाउनलोड है? मेरे उदाहरण में hey टेक्स्ट फ़ाइल में शामिल है, इसलिए यह काम नहीं करता है।

उत्तर

3

यह केवल एक multipart message साथ संभव हो जाएगा। लेकिन दुर्भाग्यवश ऐसे कई ब्राउज़र नहीं हैं जो HTTP में मल्टीपार्ट संदेशों का समर्थन करते हैं (मुझे लगता है कि ओपेरा ही एकमात्र है)।

यही कारण है कि यह आम बात (हालांकि यह विपरीत क्रम में है) एक मेटा रिफ़्रेश रीडायरेक्ट साथ डाउनलोड पृष्ठ भेजने के लिए दोनों एक टेक्स्ट संदेश और एक डाउनलोड कार्रवाई के लिए है।

1

यह इस तरह से संभव नहीं है। (कम से कम जब तक हमारे पास बहु-भाग अनुरोध नहीं हैं।)

आपके द्वारा उल्लेखित पृष्ठ "अगर आपका डाउनलोड प्रारंभ नहीं होता है" पृष्ठ पर रीडायरेक्ट करते हैं, और वहां से डाउनलोड को ट्रिगर करते हैं, आमतौर पर एक नई विंडो में डाउनलोड खोलने के लिए जावास्क्रिप्ट का उपयोग करना।

1

प्रदर्शन अन्य पृष्ठ पर संदेश .. तो फाइल डाउनलोड या php फ़ाइल को डाउनलोड करने के लिए मजबूर करता ब्राउज़र पुनर्निर्देशित करने के लिए एक लिंक प्रदान ..

3

आप इस तरह मेटा रीफ़्रेश के साथ यह कर सकते हैं:

<meta http-equiv=REFRESH CONTENT="5; url=http://your_domain/your_file"> 
+0

+1 :) –

0
onClick="setTimeout(location.reload.bind(location), 15000);" 

यह 15 सेकंड (15,000 मिलीसेकंड) इंतजार करेंगे, तो location.reload समारोह, करने के लिए निर्मित एक समारोह है जो फोन पृष्ठ ताज़ा करें। पुराने स्कूल के लिए

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