2010-05-14 24 views
5

मैं एक पेज पर एक छवि इनलाइन दिखाने की कोशिश कर रहा हूँ। यह एक कोडनिर्देशक नियंत्रक द्वारा परोसा जा रहा है।सामग्री-स्वभाव: इनलाइन हेडर छवियों को इनलाइन नहीं दिखाएगा?

class Asset extends MY_Controller { 

    function index($folder, $file) { 

     $asset = "assets/$folder/$file"; 

     if (!file_exists($asset)) { 
      show_404(); 
      return; 
     } 

     switch ($folder) { 
     case 'css': 
      header('Content-type: text/css'); 
      break; 
     case 'js': 
      header('Content-type: text/javascript'); 
      break; 
     case 'images': 
      $ext = substr($file, strrpos($file, '.')); 
      switch ($ext) { 
      case 'jpg': 
       $ext = 'jpeg'; 
       break; 
      case 'svg': 
       $ext = 'svg+xml'; 
       break; 
      } 

      header('Content-Disposition: inline'); 
      header('Content-type: image/'.$ext); 
     } 

     readfile($asset); 
    } 

} 

जब मैं एफएफ के क्रोम में एक छवि लोड करता हूं तो यह डाउनलोड विंडो पॉप अप करता है। मुझे पता है कि ब्राउजर इनलाइन सामग्री को प्रदर्शित नहीं कर सकता है, फिर भी यह एक डाउनलोड को मजबूर करेगा, लेकिन ये पीएनजी और जीआईएफ छवियां हैं जो ब्राउज़र में अन्यथा ठीक दिखती हैं। आईई में यह डाउनलोड को मजबूर नहीं करता है लेकिन यह ASCII में छवि प्रदर्शित करता है।

यदि मैं पूरी छवि केस पर टिप्पणी करता हूं तो यह एफएफ और क्रोम दोनों ASCII प्रदर्शित करते हैं लेकिन छवि नहीं।

मैंने सोचा कि सामग्री प्रकार सेट करने से एफएफ और क्रोम वास्तविक छवि को दिखाने की अनुमति देगा, और स्थान को एक स्रोत के रूप में उपयोग करने की अनुमति भी होगी।

जावास्क्रिप्ट और सीएसएस बिल्कुल ठीक दिखाता है।

किसी को भी कोई विचार है कि मैं छवियों को ठीक से कैसे दिखा सकता हूं?

उत्तर

5

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

वैसे भी, आपको कुछ गलत करना चाहिए। मैंने अभी ओपेरा और आईई में परीक्षण किया है और वे वास्तव में सामग्री-स्वभाव हेडर के साथ छवि इनलाइन प्रदर्शित करते हैं। मैंने उपयोग किया:

<?php 
header('Content-Disposition: inline'); 
header('Content-type: image/png'); 

readfile('Untitled.png'); 

प्रतिक्रिया शीर्षलेख की जांच के लिए अपने ब्राउज़र के देव उपकरण का उपयोग करें।

संपादित

शायद इस बग समस्या का कारण है:

<?php 
echo substr("file.ext", strrpos("file.ext", '.')); 

देता है ".ext" नहीं "ext"। Strrpos के लिए विकल्प() + 1.

+0

ओह इसे ठीक कर दिया। धन्यवाद! :) – hamstar

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