2013-01-03 25 views
6

के लिए काम नहीं कर रहा है हम सभी HTML टेम्पलेट्स बनाने या वेबसाइटों को संशोधित करते समय इंटरनेट एक्सप्लोरर से नफरत करते हैं। खैर मैंने हाल ही में यूआरएल के स्थान को छिपाने के लिए एक PHP छवि स्क्रिप्ट बनाई है। यह फ़ायरफ़ॉक्स, क्रोम और यहां तक ​​कि सफारी के लिए ठीक काम करता है।PHP हैडर - सामग्री-प्रकार: छवि/जेपीईजी - इंटरनेट एक्सप्लोरर

इंटरनेट एक्सप्लोरर PHP स्क्रिप्ट से छवि को प्रदर्शित करने से इंकार कर देता है। यह टूटी छवि आइकन भी नहीं देता है। बस रिक्त वर्ग।

एंड्रॉइड का भी एक ही मुद्दा है, लेकिन मैं उस समय एक और समय प्राप्त कर सकता हूं और इससे संबंधित हो सकता है।

$image_id = $_GET['id']; 

include "mysql_connect.php"; 
$sql = "SELECT * FROM images WHERE code='$image_id'"; 
$result = mysql_query($sql); 
$r=mysql_fetch_array($result); 

$imagepath=$r['path']; 

// Produce proper Image 
header("Content-type: image/jpeg"); 

echo file_get_contents("$imagepath"); 

मैं उच्च और निम्न गूगल और इस वेबसाइट पर खोज:

यहाँ छवि स्क्रिप्ट के लिए मेरे कोड है। एक ठोस स्रोत नहीं मिला, यह बताते हुए कि क्यों इंटरनेट एक्सप्लोरर छवि प्रदर्शित नहीं कर रहा है।

किसी भी मदद की बहुत सराहना की जाती है।

+0

इस स्क्रिप्ट का *** कच्चा *** आउटपुट क्या है? क्या यह डिस्क पर जेपीईजी डेटा के समान दिखता है? कोई पिछला या पिछला आउटपुट नहीं? – deceze

+0

फ़ायरफ़ॉक्स के लिए, यह छवि प्रदर्शित करता है। इंटरनेट एक्सप्लोरर एएससीआईआई कोड दिखाता है जो यह प्रतीत होता है। मैंने ($ imagepath) का उपयोग करने का भी प्रयास किया है; – JCastell

+1

या तो आप छवि डेटा के पहले या बाद में व्हाइटस्पेस आउटपुट कर रहे हैं, या आप सामग्री-लंबाई शीर्षलेख खो रहे हैं। आपके पास इस स्क्रिप्ट के साथ और SQL इंजेक्शन समस्या भी है। – datasage

उत्तर

8

सामग्री-प्रकार शीर्षलेख नाम अपरकेस टी के साथ लिखा गया है। मुझे यकीन नहीं है कि यह समस्या है, लेकिन कुछ ब्राउज़र्स सामग्री-प्रकार शीर्षलेख को पहचान नहीं सकते हैं जब यह लोअरकेस टी के साथ लिखा जाता है। इस प्रकार, आप का उपयोग करना चाहिए: और

header("Content-Type: image/jpeg"); 

कुछ है कि एक समस्या हो सकती है, एक png या gif, जब आप छवि/jpeg सामग्री- है जब आप एक छवि है कि एक jpeg नहीं दिखाने का प्रयास करते हैं, लेकिन हेडर टाइप करें। इसलिए, आपको यह सुनिश्चित करना चाहिए कि आप ब्राउज़र को सही सामग्री-प्रकार दें।

+0

पूंजी टी तय की गई। फिलहाल मैं केवल जेपीईजी के साथ परीक्षण कर रहा हूं। – JCastell

2

इंटरनेट एक्सप्लोरर माइम प्रकार image/pjpeg का उपयोग करता है। आप IE के लिए pjpeg और अन्य ब्राउज़रों के लिए jpeg का उपयोग करते हैं।

header("Content-Type: image/pjpeg"); 

स्रोत: image/pjpeg and image/jpeg

+0

इंटरनेट एक्सप्लोरर को छवि/पीजेपीईजी केवल प्रगतिशील एन्कोडेड जेपीईएस –

+0

के लिए सामग्री-प्रकार के रूप में चाहिए, मैंने इसे कहीं और पढ़ा है। फिर से प्रयास किया। अभी भी कोई भाग्य नहीं है। – JCastell

+0

मैंने कोशिश की लेकिन अभी भी असफल रहा! –

0

सामग्री की लंबाई शीर्ष लेख सेट करें।

header("Content-Length: " . filesize($imagepath)); 
+0

अच्छा सुझाव, मैंने कुछ समय पहले जोड़ा था जब डेटासेट ने इसकी अनुशंसा की थी। कोई पिछली सफेद जगहें नहीं हैं। – JCastell

-2

मुझे लगता है कि मुझे पता है कि समस्या क्या है!

आईई आपको उम्मीद है कि आप छवि/जेपीजी का उपयोग करें, न कि छवि/jpg। इसे आजमाएं: शीर्षलेख ("सामग्री-प्रकार: छवि/जेपीईजी");

वास्तव में सभी ब्राउज़र इस तरह से परेशान हैं! आपको अब चिंता करने की ज़रूरत नहीं है!