2008-09-22 10 views
5

मैं है एक स्क्रिप्ट है कि एक एन्क्रिप्टेड यूआरएल प्राप्त करता है और है कि एक डाउनलोड उत्पन्न करता है से, स्क्रिप्ट के सबसे आलोचक बराबर यह है:आईई 7 में फ़ाइल डाउनलोड नहीं कर सकता है लेकिन फ़ायरफ़ॉक्स, क्रोम, इत्यादि में कोई समस्या नहीं है ..?

$MimeType = new MimeType(); 
$mimetype = $MimeType->getType($filename); 
$basename = basename($filename); 
header("Content-type: $mimetype"); 
header("Content-Disposition: attachment; filename=\"$basename\""); 
header('Content-Length: '. filesize($filename)); 
if (@readfile($filename)===false) { 
    header("HTTP/1.0 500 Internal Server Error"); 
    loadErrorPage('500'); 
} 

डाउनलोड आईई को छोड़कर किसी भी ब्राउज़र में आकर्षण के रूप में काम करता है, मैंने देखा है समस्याओं संबंधित 'नो-कैश' हेडर के लिए, लेकिन मैं ऐसा कुछ भी नहीं भेजता, वे utf-8 अक्षरों के बारे में बात करते हैं, लेकिन कोई utf-8 characters नहीं है (और $ फ़ाइल नाम में कोई भी utf-8 विशेषता नहीं है)।

+0

"यह आईई को छोड़कर काम करता है" मददगार नहीं है। यह कैसे काम नहीं करता है? क्या कोई त्रुटि संदेश है? एक टाइमआउट? क्या यह फ़ाइल सामग्री प्रदर्शित करता है? क्या यह गलत चीज डाउनलोड करता है? – Jim

+0

मूल रूप से टाइमआउट, यह एक डाउनलोड विंडो पॉप आउट करता है लेकिन कभी भी अग्रिम नहीं करता है, कुछ मिनटों के बाद यह कहता है: "इंटरनेट एक्सप्लोरर वेबसेवर से फ़ाइल नाम डाउनलोड नहीं कर सकता" – levhita

उत्तर

3

This site आईई 6 में आपकी तरह की समस्या है। संक्षेप में:

session_start() डिफ़ॉल्ट रूप से कैश नियंत्रण शीर्षलेख "नो-स्टोर" भेजता है। इंटरनेट एक्सप्लोरर इसे थोड़ा सा शाब्दिक रूप से लेता है, लेकिन मामले के लिए त्रुटि त्रुटि प्रबंधन नहीं है, और परिणामस्वरूप क्रिप्टिक रूप से विस्फोट होता है जब आप आउटपुट पृष्ठ को डिस्क पर सहेजने का प्रयास करते हैं।

session_start से पहले(), "session_cache_limiter ('कोई नहीं');" जोड़ सकते हैं या कि समारोह को देखने और tweak सीमक के रूप में उपयुक्त (शायद 'निजी' निशान के करीब है)।

मैं कोड का एहसास तुम्हें तैनात session_start(); के लिए एक कॉल शामिल नहीं है झलकी है, लेकिन मुझे लगता है मैं साझा करते हैं मामले में यह संभव समाधान तुम क्या यह करने के लिए एक फोन है सोचा और बस हमें नहीं दिखा था।

+0

हां एक सत्र_स्टार्ट() ऊपर है, मैं बस उस कोड को पोस्ट करता हूं क्योंकि एक बहुत लंबा कोड। – levhita

8

मैं हेडर भेज कर इसे हल

header('Pragma: public'); 
header('Cache-Control: max-age=0'); 

मुझे लगता है कि session_start() अपने आप से हेडर भेज पता था कि नहीं था।

मैं की टिप्पणी अनुभाग में जवाब मिला: Error: Internet Explorer Cannot Download FileName from WebServer

0

उपयोग इस

IE7 ब्राउज़र में इंटरनेट विकल्प के लिए जाने -> सुरक्षा ---> कस्टम स्तर ---> डाउनलोड तो सक्षम फ़ाइल डाउनलोड के लिए ऑटोमेटिक संकेत।

इससे समस्या हल हो जाएगी।

आशा है कि इससे

+0

आप वास्तव में अपने सभी उपयोगकर्ताओं को ऐसा करने के लिए नहीं कह सकते :) – Luk

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

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