2012-11-30 12 views
5

जब भी मैं फ़ाइल डाउनलोड करने के लिए इस स्क्रिप्ट का उपयोग करता हूं, तो मैं डाउनलोड करते समय कुल आकार और गति नहीं देख सकता ... मैं इसे और अधिक दिखाना चाहता हूं 'प्रत्यक्ष डाउनलोड लिंक'। इस स्क्रिप्ट का उद्देश्य सीधे डाउनलोड लिंक को छिपाने के लिए सीधे डाउनलोडिंग और अन्य डाउनलोड व्यवहार को प्रतिबंधित करना है।
enter image description herePHP: फोर्स डाउनलोड हेडर कुल आकार और गति नहीं दिखाएगा

: mediafire,, Megaupload आदि के बारे में सोचो

स्क्रिप्ट अब हमारे पास काम करता है लेकिन यह कैसे जब आप एक सामान्य डाउनलोड लिंक से डाउनलोड प्रदर्शित किया जाता है के रूप में प्रदर्शित नहीं किया जाता है, मैं क्या हो रहा है का एक स्क्रीनशॉट पोस्ट करेंगे

मुझे आशा है कि। इस स्क्रीनशॉट, में मदद करता है, क्योंकि मैं घंटों के लिए इंटरनेट खोज की है और इस :(करने के लिए एक समाधान खोजने के लिए नहीं कर पा रहे

if (isset($_GET['file'])){ 
    $file = $_GET['file']; 
    $path = '/home/user/domains/domain.com/files/upload/'; 
    $filepath = $path.$file; 

    if (file_exists($filepath)){ 

    set_time_limit(0); // for slow connections 

    header('Content-Description: File Transfer'); 
    header("Content-Disposition: attachment; filename=\"$file\""); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Content-Length: ' . filesize($filepath)); 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Pragma: public'); 
    header('Expires: 0'); 

    readfile($filepath); // send file to client 
    } 
    else{ 
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404); 
    } 
    }else{ 
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404); 
    } 
+1

क्रोम/सफारी की डेवलपर टूल विंडो क्लाइंट को भेजे गए शीर्षलेखों के बारे में क्या कहती है? साथ ही, फ़ायरफ़ॉक्स के "लाइव HTTP शीर्षलेख" एक्सटेंशन को आजमाएं। – Dai

+0

आप किस ब्राउज़र और संस्करण के साथ परीक्षण कर रहे हैं? – MrLore

+0

@MrLore वर्तमान में हम क्रोम, इंटरनेट एक्सप्लोरर और फ़ायरफ़ॉक्स के नवीनतम संस्करण के साथ काम कर रहे हैं, हम सभी ब्राउज़रों पर काम करना चाहते हैं, लेकिन हमारी वरीयता क्रोम पर जाती है। जैसा कि आप स्क्रीनशॉट में देख सकते हैं, यह क्रोम और इंटरनेट एक्सप्लोरर के साथ होता है। –

उत्तर

2

सामग्री mod_deflate साथ सर्वर के स्तर पर संपीड़ित होता है या कुछ समान है?

यह यहाँ उत्तर दिया गया है: Sending correct file size with PHP download script

"आप Zlib, mod_deflate साथ और इतने सामग्री-लंबाई हेडर पर फ़ाइलें सेक तो सही नहीं होगा तो आप देख पहुंच जाएंगे" अज्ञात आकार "और" अज्ञात समय शेष "जब फ़ाइलों को डाउनलोड।"

"आप आसानी से किसी लागू .htaccess फ़ाइल में निम्न पंक्ति का उपयोग कर एकल स्क्रिप्ट के लिए इसे अक्षम कर सकते हैं:

SetEnvIfNoCase REQUEST_URI ^/download.php नहीं- gzip dont-भिन्न wh ere download.php यहां सर्वर की रूट निर्देशिका पथ में स्थित डाउनलोड स्क्रिप्ट में माना जाता है (उदा। www.crimsonbase.com/download.php)।

इसके अलावा (इसका कारण यह नियमित अभिव्यक्ति ^/download.php है।) ", कृपया ध्यान दें कि आपकी स्क्रिप्ट असुरक्षित है। किसी ने प्रभावी ढंग से [ 'फ़ाइल']

../../../../../Documents/MyStuff 
_GET के लिए निम्नलिखित प्राप्त पैरामीटर भेज सकता है

और यह आपके $ पथ प्रतिबंध पूरी तरह से पार कर जाएगी।

रास्ते में किसी भी .. संदर्भ बाहर अलग करना सुझाव देते हैं।

0

मैं आज एक ऐसी ही समस्या हो रही थी, मैं नहीं कुल आकार मिल सकता है डाउनलोड की गई फ़ाइल की (प्रगति डाउनलोड करें)।

ब्राउज़र हेडर संकेत दिया सामग्री प्रकार के रूप में "gzip", मैं, सर्वर prevening download.php स्क्रिप्ट पर gzip उपयोग करने के लिए इसका समाधान करने में इस इनको लाइन द्वारा सक्षम था:

SetEnvIfNoCase REQUEST_URI ^/download.php no-gzip dont-भिन्न

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