2012-04-05 12 views
5

मुझे पता है किPHP के साथ एक छवि को कैसे पढ़ा जाए?

$localfile = $_FILES['media']['tmp_name']; 

छवि को देखते हुए POST विधि का इस्तेमाल किया गया था मिल जाएगा। मैं एक छवि को पढ़ने की कोशिश कर रहा हूं जो मेरे कोड के समान निर्देशिका में है। मैं इसे कैसे पढ़ूं और उपरोक्त की तरह एक वैरिएबल को असाइन कर सकता हूं?

+0

आपका उदाहरण सिर्फ फ़ाइल नाम, नहीं छवि की सामग्री पढ़ता है। आप क्या करने की कोशिश कर रहे हैं? – Cal

उत्तर

9

आपके द्वारा पोस्ट किया गया कोड छवि डेटा नहीं पढ़ेगा, बल्कि इसके फ़ाइल नाम को पढ़ेगा। आप एक ही निर्देशिका में एक छवि को पुनः प्राप्त करने की जरूरत है, तो आप file_get_contents() साथ उसकी सामग्री को प्राप्त कर सकते हैं, जो ब्राउज़र के लिए इस्तेमाल किया जा सकता सीधे निर्गम के लिए यह:

$im = file_get_contents("./image.jpeg"); 
header("Content-type: image/jpeg"); 
echo $im; 

अन्यथा, आप the GD library उपयोग कर सकते हैं छवि में पढ़ने के लिए आगे छवि प्रसंस्करण के लिए डेटा:

$im = imagecreatefromjpeg("./image.jpeg"); 
if ($im) { 
    // do other stuff... 
    // Output the result 
    header("Content-type: image/jpeg"); 
    imagejpeg($im); 
} 

अंत में, यदि आप छवि तुम्हारी जरूरत है (हालांकि अगर यह आपके कोड के रूप में एक ही स्थान में है, तो आप चाहिए), आप एक का उपयोग कर सकते के फ़ाइल नाम पता नहीं है सभी जेपीईएस खोजने के लिए glob() उदाहरण के लिए:

$jpegs = glob("./*.jpg"); 
foreach ($jpegs as $jpg) { 
    // print the filename 
    echo $jpg; 
} 
+0

इन दोनों के बीच क्या अंतर है? \t \t \t \t \t \t $ localfile = $ _FILES ['media'] ['tmp_name']; \t \t \t \t \t $ fil32ame = $ _FILES ['media'] ['name']; –

+0

एक आपके सर्वर (tmp_name) पर संग्रहीत फ़ाइल का फ़ाइल नाम है, दूसरा क्लाइंट कंप्यूटर पर मूल फ़ाइल नाम था जिसने फ़ाइल (नाम) अपलोड किया था। – Cal

+0

@Mozammil 'name' उपयोगकर्ता द्वारा अपलोड किए गए मूल नाम फ़ाइलों को इंगित करता है। 'tmp_name' एक फ़ाइल नाम है जो PHP द्वारा अस्थायी स्थान में असाइन किया गया है, जो वास्तविक फ़ाइल डेटा को इंगित करता है। यह तब तक अस्तित्व में है जब तक स्क्रिप्ट समाप्त नहीं हो जाती है, तब 'tmp_name' मान्य नहीं है। –

0

आप एक छवि को पढ़ने और फिर एक छवि

$image="path-to-your-image"; //this can also be a url 
$filename = basename($image); 
$file_extension = strtolower(substr(strrchr($filename,"."),1)); 
switch($file_extension) { 
    case "gif": $ctype="image/gif"; break; 
    case "png": $ctype="image/png"; break; 
    case "jpeg": 
    case "jpg": $ctype="image/jpeg"; break; 
    default: 
} 

header('Content-type: ' . $ctype); 
$image = file_get_contents($image); 
echo $image; 

यदि आपका पथ एक यूआरएल है के रूप में यह प्रस्तुत करना चाहते हैं, और यह https का उपयोग कर रहा है: // प्रोटोकॉल तो आप बदल सकते हैं प्रोटोकॉल में http

Working fiddle

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