امتداد الملف، مثل .pdf أو .png، يخبرك بما يقوله الملف عن نفسه. أما نوعه الحقيقي فتعرفه من محتواه، أي من البايتات الأولى داخله، ويكفيك في لينكس الأمر file --mime-type. وحين ترفع الملف إلى نموذج أو موقع، يرسل المتصفح معه نوع MIME يستنتجه من الامتداد وحده دون أن يقرأ المحتوى، ولهذا قد يُرفض ملف يبدو اسمه سليما.
فالامتداد ونوع MIME يحددان كيف سيُصنَّف الملف لحظة رفعه، أما المحتوى فيحدد ما هو فعلا. وإذا اختلف الاثنان فقد يرفض الموقع الملف أو يعجز عن فتحه.
ماذا يعرض مدقق نوع ملف MIME عن ملفك
يعرض مدقق نوع ملف MIME من Digily Link أربع معلومات عن الملف الذي تختاره، هي «النوع» و«الحجم» و«الاسم» و«تاريخ آخر تعديل». وDigily Link من منتجاتنا، لذلك نشرح هنا ما تفعله الأداة بدقة وما لا تفعله.
واستخدامها بسيط.
- افتح صفحة الأداة في متصفحك.
- اضغط على حقل «ملف» واختر الملف من جهازك.
- اقرأ النتائج التي تظهر في الحقول الأربعة بعد الاختيار.
قرأنا شيفرة الأداة لنتأكد مما تعرضه. فالقيمة التي تظهر في «النوع» هي ما يسميه المتصفح file.type، وهو في العادة استنتاج يبنيه المتصفح على الامتداد لا على محتوى الملف. والصفحة توقف إرسال النموذج، فبحسب شيفرتها الحالية لا يُرسل الملف إلى الخادم عند الفحص، بل تقرأ الصفحة بياناته داخل متصفحك. ومع ذلك يُستحسن أن تجرّب الأداة على ملف غير سري.
لأن المتصفح يستنتج النوع من الامتداد، فالأداة تبيّن كيف سيُصنَّف الملف عند رفعه، ولا تثبت ما بداخله. وهذا ما تحتاجه حين تريد أن تعرف مسبقا ما سيراه نموذج الرفع قبل أن تضغط زر الإرسال في موقع الجهة الأخرى.
يُحسب «الحجم» على أساس 1000 ويُعرض بمنزلة عشرية واحدة. ففي مثال افتراضي، يظهر ملف من 2345678 بايت بالشكل 2.3 MB.
وإذا ظهر حقل النوع فارغا، فالمتصفح لا يعرف هذا الامتداد. وسنعود إلى هذه الحالة في قسم حل المشكلات.
ما هو نوع MIME وكيف يُكتب
نوع MIME تسمية قياسية تصف طبيعة الملف، وتتكوّن من جزأين تفصل بينهما شرطة مائلة، النوع العام ثم النوع الفرعي، مثل image/png. فالجزء الأول هنا يقول إن الملف صورة، والثاني يحدد أنها بصيغة PNG.
بحسب دليل أنواع MIME في MDN (اطّلعنا عليه في 29 أكتوبر 2026)، يُكتب النوع والنوع الفرعي دون مسافات بينهما، وتعريف هذه الأنواع موجود في المعيار RFC 6838، أما سجلها الرسمي فتحتفظ به IANA. لذلك تستخدم المواقع في العادة أسماء مسجلة يفهمها الجميع، وإن كنت ستصادف أحيانا أسماء غير قياسية مثل application/x-zip-compressed.
وهناك نوعان ستصادفهما كثيرا. الأول application/octet-stream، وهو النوع الافتراضي للملفات الثنائية التي لا يُعرف نوعها. والثاني text/plain، وهو النوع الافتراضي للملفات النصية. فإذا رأيت octet-stream في رسالة خطأ أو في أداة فحص، فمعناها أن الجهاز يرى ملفا ثنائيا ولا يعرف ما هو، وهذا لا يعني بالضرورة أن الملف تالف.
ومصدر الالتباس هو العلاقة بين الامتداد ونوع MIME. فالامتداد جزء من اسم الملف تستطيع تغييره بإعادة التسمية، ونوع MIME تسمية يرسلها المتصفح أو الخادم مع الملف. والمتصفح يشتق الثاني من الأول في العادة، فإذا كان الامتداد خاطئا جاء نوع MIME خاطئا هو أيضا.
كيف تُظهر امتدادات الملفات في ويندوز 11 وويندوز 10
تُظهر امتدادات الملفات في ويندوز من إعدادات العرض في مستكشف الملفات، والخيار موجود في الإصدارين بمسار مختلف قليلا. فإذا كان ويندوز لا يعرض الامتدادات على جهازك، فلن تعرف هل الملف «سيرة.pdf» أم «سيرة.docx»، ولن تنتبه إلى ملف يحمل امتدادين.
نصف الخطوات هنا وصفا عاما، لأن أسماء القوائم في الواجهة العربية قد تختلف قليلا بحسب الترجمة، ونضع الاسم الإنجليزي بين قوسين للمقارنة.
في ويندوز 11
- افتح مستكشف الملفات.
- اختر قائمة العرض في الشريط العلوي (View).
- انتقل إلى خيار الإظهار (Show).
- فعّل الخيار الخاص بامتدادات أسماء الملفات (File name extensions).
في ويندوز 10
- افتح مستكشف الملفات.
- اختر علامة تبويب العرض (View).
- ابحث عن مجموعة الإظهار والإخفاء (Show/hide).
- ضع علامة في مربع امتدادات أسماء الملفات (File name extensions).
بعد ذلك يظهر الامتداد في نهاية اسم كل ملف. انظر حينها إلى الملف الذي تنوي رفعه، وتأكد أن امتداده هو ما يطلبه النموذج فعلا.
كيف تعرف نوع الملف الحقيقي من محتواه
تعرف نوع الملف الحقيقي بقراءة محتواه لا اسمه، إما بأداة تقارن بايتاته بأنماط معروفة، وإما بالنظر بنفسك إلى البايتات الأولى. وهذا هو الفحص الذي يكشف ملفا أعيدت تسميته، وهو ما لا يفعله المتصفح ولا مدقق نوع ملف MIME.
أمر file في لينكس
إذا كنت تستخدم لينكس، فاكتب في الطرفية الأمر file --mime-type متبوعا باسم الملف، مثل file --mime-type cv.png. وبحسب صفحة دليل الأمر file، يكتفي الأمر مع الخيار --mime-type بعرض نوع MIME دون الوصف الطويل.
وميزة هذا الأمر أنه ينظر إلى الملف نفسه. فهو يجري اختباراته بترتيب ثابت، اختبارات نظام الملفات أولا، ثم اختبارات «magic» التي تقارن بايتات من المحتوى بأنماط معروفة لكل صيغة، ثم اختبارات اللغة. لذلك قد يعطيك نوعا يخالف الامتداد، وهذا الاختلاف هو ما تبحث عنه أصلا.
توقيع PNG في أول ثمانية بايتات
تبدأ بعض الصيغ ببايتات ثابتة تُسمى التوقيع. وفي حالة PNG تنص مواصفة PNG من W3C في القسم 5.2 على أن البايتات الثمانية الأولى هي 89 50 4E 47 0D 0A 1A 0A.
وإن لم تكن على لينكس، فافتح الملف في أي محرر سداسي عشري (hex editor) وانظر إلى السطر الأول. فإن بدأ بالبايتات الثمانية 89 50 4E 47 0D 0A 1A 0A فهو في الغالب بصيغة PNG مهما كان اسمه، وإن كان التوقيع وحده لا يضمن أن بقية الملف سليمة. وإن بدأ بشيء آخر فهو ليس PNG حتى لو انتهى اسمه بـ .png.
ولنأخذ مثالا افتراضيا. حمّل أحمد صورة شخصية من موقع وسمّاها «صورة.png»، ثم رفضها نموذج طلب وظيفة. فتحها في محرر سداسي عشري فلم يجد 89 50 4E 47 في بدايتها، ثم شغّل file --mime-type على لينكس فظهر image/webp. فالملف إذن صورة WebP بامتداد مستعار، والحل أن يصدّرها من جديد بصيغة PNG بدل أن يكتفي بتغيير اسمها.
تجربة تغيير امتداد صورة PNG إلى txt
تغيير امتداد صورة PNG إلى .txt يجعل المتصفح يصنّفها text/plain، وتستطيع أن تتحقق من ذلك بنفسك في دقيقة. تقول صفحة الخاصية type في MDN (التي يرثها File من Blob) (اطّلعنا عليها في 29 أكتوبر 2026) إن المتصفح لا يقرأ محتوى الملف ليعرف نوعه، بل يستنتجه من الامتداد، وإنك إذا غيّرت اسم صورة PNG إلى .txt سيقول المتصفح إنها text/plain.
- انسخ صورة PNG لديك، وسمِّ النسخة image.png.
- اختر النسخة في مدقق نوع ملف MIME، وسيظهر في «النوع» image/png.
- غيّر اسم النسخة إلى image.txt واخترها مرة أخرى.
- بحسب MDN سيظهر الآن text/plain، مع أن المحتوى لم يتغير فيه بايت واحد.
أما أمر file --mime-type فيُتوقع أن يبقى على image/png للنسخة نفسها، لأنه يفحص المحتوى. وتشرح هذه التجربة لماذا لا تُصلح إعادة التسمية ملفا بصيغة خاطئة، فهي تغيّر التصنيف ولا تغيّر الصيغة.
جدول الامتدادات الشائعة وأنواع MIME المقابلة
هذه أنواع MIME المقابلة لأكثر الامتدادات التي تطلبها النماذج والمواقع، مأخوذة من جدول الأنواع الشائعة في MDN. قارن ما يعرضه حقل «النوع» في المدقق بالعمود الثاني.
| الامتداد | نوع MIME |
|---|---|
| application/pdf | |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| .jpg و .jpeg | image/jpeg |
| .png | image/png |
| .webp | image/webp |
| .mp4 | video/mp4 |
| .mp3 | audio/mpeg |
| .zip | application/zip (ويندوز قد يرسل application/x-zip-compressed) |
| .txt | text/plain |
| .csv | text/csv |
لاحظ أن ملفات Word وExcel الحديثة تحمل نوعا طويلا يبدأ بـ application/vnd، وهذا طبيعي. ولاحظ كذلك أن .jpg و.jpeg امتدادان لنوع واحد، فإذا طلب النموذج JPEG فكلاهما مقبول من حيث النوع.
لماذا يرفض الموقع ملفك وكيف تحل المشكلة
قد يرفض الموقع ملفك لأن نوع MIME الذي وصله لا يطابق قائمة الأنواع المسموح بها، إما لأن الامتداد خاطئ أو غير معروف، وإما لأن ويندوز يرسل تسمية غير قياسية لبعض الصيغ. ابدأ بالجدول التالي، ثم اقرأ تفاصيل حالتك بعده.
| العَرَض | السبب المحتمل | ماذا تفعل |
|---|---|---|
| حقل النوع فارغ | امتداد غير شائع أو بلا امتداد | أظهر الامتدادات في مستكشف الملفات |
| «صورة.png» مرفوضة | قد تكون صيغة أخرى بعد تغيير الاسم | افحص التوقيع (file --mime-type، أول البايتات 89 50 4E 47 0D 0A 1A 0A) |
| application/octet-stream | نوع ثنائي عام، وليس بالضرورة خطأ | راجع الصيغة المطلوبة، وإن اختلفت صيغة الملف الفعلية فصدّره من جديد بها |
| «مستند.pdf.exe» | امتداد مزدوج مخفي | أظهر الامتدادات ولا تفتح الملف |
حقل النوع يظهر فارغا
الحقل الفارغ يعني أن المتصفح لم يتمكن من تحديد النوع، وغالبا لأنه لم يتعرّف إلى الامتداد. وتذكر MDN أن الامتدادات غير الشائعة تعطي قيمة فارغة، وكذلك الملف الذي لا امتداد له أصلا. أظهر الامتدادات في مستكشف الملفات كما شرحنا، فإن وجدت الاسم بلا امتداد أو بامتداد غريب، فافتح الملف في البرنامج الذي أنشأه واحفظه أو صدّره بالصيغة التي يطلبها النموذج.
ملف بامتداد صحيح لكنه مرفوض
إذا كان الاسم ينتهي بالامتداد المطلوب والموقع يرفضه مع ذلك، فمن المحتمل أن يكون المحتوى بصيغة أخرى، خصوصا إذا غيّر أحدهم الاسم يدويا. افحص التوقيع بأمر file --mime-type أو بمحرر سداسي عشري كما شرحنا أعلاه، ثم صدّر الملف بالصيغة الصحيحة.
ظهور application/octet-stream
هذا نوع عام للملفات الثنائية، ولا يعني وحده أن في الملف خطأ، لكن بعض المواقع ترفضه لأنها تشترط نوعا محددا. لا تحاول إصلاحه بتغيير الاسم، بل افتح الملف في برنامجه الأصلي وصدّره من جديد بالصيغة المطلوبة، ثم اختره في المدقق وتأكد أن «النوع» صار مطابقا لما في الجدول.
ملف zip يظهر بنوع x-zip-compressed
تذكر MDN أن ويندوز يرفع ملفات .zip بنوع MIME غير قياسي هو application/x-zip-compressed بدل application/zip. فإذا رفض موقع ملفا مضغوطا سليما رفعته من ويندوز، فقد يكون هذا هو السبب. اختر الملف في مدقق نوع ملف MIME لترى أي القيمتين يمنحها متصفحك له، ثم أبلغ الجهة المسؤولة عن الموقع بالقيمة التي ظهرت لك.
امتداد مزدوج مثل مستند.pdf.exe
إذا كانت الامتدادات مخفية، فقد يبدو ملف اسمه «مستند.pdf.exe» كأنه «مستند.pdf». والامتداد الحقيقي هنا هو الأخير، أي .exe، وقد يكون ملف برنامج لا مستندا. أظهر الامتدادات أولا، وإذا وجدت ملفا كهذا فلا تفتحه.
ما الذي يعنيه file.type للمطور المبتدئ
قيمة file.type في المتصفح تخمين مبني على الامتداد، فلا تعتمد عليها وحدها لقبول الملفات في نموذجك. وتقول MDN صراحة إن إعدادات جهاز المستخدم، مثل سجل ويندوز (Windows Registry)، قد تعطي قيما غير متوقعة حتى للأنواع الشائعة، وتنصح المطورين بألا يجعلوا هذه الخاصية وسيلة التحقق الوحيدة.
من الناحية العملية، استخدم file.type لتنبيه المستخدم مبكرا قبل الرفع، وافحص المحتوى نفسه على الخادم بعد وصول الملف. وإذا كنت تقبل ملفات zip، فأضف application/x-zip-compressed إلى جانب application/zip في قائمتك حتى لا ترفض ملفات مستخدمي ويندوز السليمة.
قبل أن ترفع سيرتك الذاتية أو مستندات طلبك، أو قبل أن تختبر نموذج رفع تبنيه، افحص نوع الملف في مدقق نوع ملف MIME لترى النوع والحجم والاسم وتاريخ آخر تعديل كما يراها متصفحك.