الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

معرفة امتداد الملف المرفوع

مغلق
بدأه ashraf_gawdat في 22 يونيو 2006 · 5 رد · 1,352 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

كتبت كود لرفع ملفات على السيرفر، وبعد أن يتم الرفع أقوم بنقلها من الملف المؤقت إلى الملف الذي يجب وضعها فيه باستخدام move_uploaded_file . ولكن المشكلة أنني لا أريد رفعها باستخدام نفس الاسم الأصلي ولكن باسم جديد يتم تحديده بطريقة معينة. ولكن عند وضع اسم جديد اكتشفت أنه لا توجد طريقة تمكنني من معرفة امتداد الملف المرفوع بحيث أنني حينما أقوم بتسميته باسم جديد أحافظ على الامتداد، وذلك لأنه عند كتابة الاسم الجديد يكون شاملا الامتداد أيضا، وإذا لم أحدد امتدادا فسيوضع الملف بدون امتداد.

لهذا فما أريده هو معرفة امتداد الملف المرفوع حتى إذا غيرت اسمه حافظت على امتداده الأصلي بطريقة أوتوماتيكية. ولقد بحثت في المانيوال الـ PHP ولم أجد function تمكنني من عمل هذا، فهل أجد لديكم؟

وما أريد إضافته منعا للخلط فما أريد معرفته ليس النوع مثل image/gif للصور، فهذه يمكن معرفتها باستخدام mime_content_type ، ولكنني أريد معرفة الامتداد بالضبط مثل jpg أو gif وهكذا.

وشكرا.

#2

بعد المزيد من البحث وجدت هذا الكود البسيط الذي يبحث عن آخر نقطة في اسم الملف ويقوم بإرجاع ما بعدها والذي هو امتداد الملف

<?php
$filename = "roflhax.pwnage.jpeg";
if (($pos = strrpos($filename, ".")) === FALSE)
  echo "Error - file doesn't have a dot... weird.";
else {
  $extension = substr($filename, $pos + 1);
  echo $extension; // will echo "jpeg"
}
?>

وأيضا وجدت في المانيوال function تقوم بهذا العمل وهي image_type_to_extension ولكن مكتوب تحتها

Warning: This function is currently not documented; only the argument list is available

وهذه العبارة وجدتها في بعض الـ functions ، فهل معنى هذا أن هذه الـ functions لا تعمل ولا يجب استخدامها؟

#3

انا طحت بنفس المشكله لمى برمجة مركز تحميل ملفات و كان الحل هذي الداله تعطيها اسم الملف مع الامتداد وترجعلك الامتداد وهي مجربه و مريحه

<?php
/*
دالة تعطيها اسم الملف متضمن امتداده ترجعلك الامتداد 
for example if you give it (ali.dm.rm) it will
return (rm)
*/
function typex($nat)
{
$type = "noon";
for($i=0;$i < strlen($nat); $i++ )
{
$dott = substr($nat,$i,1);
if($dott ==".")
{
$type= substr($nat,$i+1,strlen($nat)-$i);
}
}
return $type;
}

?>
#4
$temp_ext = explode('.',$filename);
$extension = $temp_ext[count($temp_ext)-1];

مع السلامة

#5

أشكر كل من قاموا بالرد على على اهتمامهم وتفاعلهم.

#6
	function getExtension($filename)
	{
		$dot = substr (strrchr ($filename, "."), 1);
		return ($dot);
	}

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

هذا الموضوع مغلق.

مواضيع مشابهة