ऐसा इसलिए है क्योंकि आपके ब्राउज़र को यह नहीं पता है कि आप जो डेटा वापस भेज रहे हैं वह एक छवि है। जब आपका वेब सर्वर किसी अनुरोध का जवाब देता है तो यह निर्दिष्ट करता है कि यह किस प्रकार की सामग्री है (इसलिए सामग्री-प्रकार शीर्षलेख), और आपके पृष्ठ को टेक्स्ट के रूप में निर्दिष्ट किया जा रहा है। यही कारण है कि छवि टैग का उपयोग किया जाता है:वे आपको "इस स्थान पर इस अन्य संसाधन को एम्बेड करें" कहने का मौका देते हैं। आपका कोड जो करता है वह छवि के बाइनरी डेटा को स्क्रीन पर टेक्स्ट के रूप में डंप करता है - वह नहीं जो आप चाहते हैं।
आपको एक और PHP पृष्ठ बनाने की आवश्यकता है, जैसे getImage.php, जो $_GET पैरामीटर (यानी, एक पंक्ति आईडी) स्वीकार करता है। फिर वह पेज डेटाबेस को क्वेरी करेगा और echo
छवि डेटा, सामग्री-प्रकार शीर्षलेख निर्दिष्ट करता है।
यहां अवधारणा कोड के कुछ प्रमाण दिए गए हैं जिन्हें मैंने परीक्षण के बिना लिखा था और जो SQL इंजेक्शन, या कई अन्य संभावित मुद्दों को हैंडल नहीं करता है।
header('Content-Type: image/png'); //change to the proper content type for your type of image
$imageID = mysql_real_escape_string($_GET['q']);
$result = mysql_query(sprintf('SELECT file_data FROM images2 WHERE id="%s" AND file_data IS NOT NULL LIMIT 1', $_GET['q']));
if(mysql_num_rows($result) !== 1)
{
//a row wasn't found, so 404
header('HTTP/1.0 404 File Not Found');
}
else
{
$row = mysql_fetch_object($result);
echo $row['file_data'];
}
अब, जब आप अपनी मौजूदा फ़ाइल में अपना HTML बना रहे हैं, तो आप कुछ ऐसा करेंगे:
echo '<td class="sitename2"><img src="./getImage.php?q='.$row["id"].'"/></td>';
अपने SQL कॉलम नामों को तदनुसार समायोजित करना।
चीयर्स।