2011-03-25 11 views

उत्तर

86
$name = $_FILES["file"]["name"]; 
$ext = end((explode(".", $name))); # extra() to prevent notice 

echo $ext; 
+0

कि आसान था। धन्यवाद :) – yanike

+0

यह याद रखना सुनिश्चित करें कि एक फ़ाइल नाम एक्सटेंशन वास्तविक सामग्री पर सिर्फ एक संकेत है। यह कुल अलग सामग्री का हो सकता है। – user1610743

+2

@ user1610743 यह एक सामान्य नियम है कि किसी भी उपयोगकर्ता सामग्री पर भरोसा न करें। स्पष्ट रूप से कोई फ़ाइल शीर्षलेखों की जांच कर सकता है और सुनिश्चित कर सकता है कि यह एक्सटेंशन से मेल खाता है। उदाहरण छवियां (जेपीईजी, पीएनजी, आदि) होगी। –

1

हाँ आप अपलोड की गई फ़ाइल का मूल नाम प्राप्त करने के लिए $_FILES['file']['name'] का उपयोग कर सकते हैं। बस ध्यान रखें कि एक्सटेंशन हमेशा फ़ाइल की वास्तविक सामग्री का प्रतिनिधित्व नहीं कर सकता है।

+0

मैं समझता हूं कि हम 'नाम' के साथ मिल सकते हैं, लेकिन मैं सोच रहा था कि क्या हम केवल tmp_name का उपयोग कर सकते हैं। – Peter

+1

@ पीटर, 'tmp_name' PHP द्वारा जेनरेट किया गया एक यादृच्छिक फ़ाइल नाम है। आप वास्तविक मूल नाम को देखकर ही ऐसा कर सकते हैं। – Charles

0

हां, मान लीजिए कि इसका सही नाम है। यह अपना मूल नाम और विस्तार बनाए रखेगा।

67

आप pathinfo() इस्तेमाल कर सकते हैं:

$path_parts = pathinfo($_FILES["file"]["name"]); 
$extension = $path_parts['extension']; 
+0

आपने अभी अपना समय बचाया है, धन्यवाद – Elyor

+8

लघु संस्करण - pathinfo ($ filename, PATHINFO_EXTENSION); – fsasvari

+0

वास्तव में सहायक उत्तर! आप को वोट देना धन्यवाद। – Miron

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