ورقة قبول لاسم ملف الكتالوج المحمّل: عربي ورمز طراز لاتيني
المشكلة المحددة
نفترض موزعاً أردنياً افتراضياً، وهو ليس عميلاً حقيقياً، ينشر كتالوجاً عربياً بصيغة PDF. يرسل موظفوه الرابط العام نفسه للعملاء، ولا يرسلون مستندات سرية. قرار الصيغة محسوم سلفاً. المطلوب فقط التأكد من اسم الملف المحفوظ وسلوك الفتح مقابل الحفظ. الاسم المختلط مثل «كتالوج المضخات ZX-450.pdf» هو القيد المحلي هنا. الغرض تمييز الملف عند من يستلمه، وليس تحسين الظهور في محركات البحث.
ما تقوله المصادر
هذه هي الحقائق الخارجية الوحيدة في المقال.
- القيمة attachment تعني أن على المستلم أن يطلب من المستخدم حفظ الاستجابة محلياً بدل معالجتها كالمعتاد بحسب نوع الوسائط.
- القيمة inline تعني المعالجة الافتراضية.
- المعاملان filename وfilename* يقدمان معلومات لبناء اسم الملف، ويجب أن يعامل المستلم هذا الاسم على أنه استشاري فقط.
- عند وجود المعاملين معاً ينبغي للمستلم أن يختار filename* ويتجاهل filename، ويبقى filename احتياطاً للمستلمين القدامى.
من MDN، قسم download في عنصر a:
- سمة download تعمل مع الروابط من الأصل نفسه ومع blob من الأصل نفسه ومع data. في الروابط الأخرى تُتجاهل السمة ويحدث تنقل عادي، وقد تطلب الصفحة الهدف التنزيل عبر Content-Disposition.
- يختلف تعامل المتصفحات مع التنزيل بحسب المتصفح وإعدادات المستخدم، فقد يُسأل المستخدم، أو يُحفظ الملف تلقائياً، أو يُفتح تلقائياً.
- عند احترام download فإنها تتجاوز inline، لكن معامل filename في Content-Disposition يتجاوز الاسم في download.
ورقة القبول (مقترح عمل وليست حقائق)
كل ما يلي مقترح تنظيمي. لا يعني أن أي نتيجة مضمونة أو شائعة.
1. سجّل كل موضع للرابط. صفحة الكتالوج على موقع الموزع، وأي رابط يرسله الموظفون، وأي رابط يشير إلى مخزن خارجي. لكل موضع حدّد هل الملف من الأصل نفسه أم من نطاق آخر.
2. حدّد الإجراء المقصود. إما فتح في المتصفح أو حفظ. لا تعتبر inline وعداً بمعاينة. هو معالجة افتراضية فقط، وattachment لا يعني واجهة واحدة في كل المتصفحات.
3. املأ المصفوفة.
| موقع الرابط | الإجراء المقصود | الاسم المحفوظ الملاحَظ | المتصفح | النتيجة |
|---|---|---|---|---|
| صفحة الكتالوج، الأصل نفسه | حفظ | يُملأ عند الاختبار | يُحدَّد | قبول / رفض / تصعيد |
| رابط الموظف في رسالة، نطاق خارجي | حفظ | يُملأ عند الاختبار | يُحدَّد | قبول / رفض / تصعيد |
4. اسم الملف المطلوب. اقتراح: عربي واضح ثم رمز الطراز اللاتيني، دون مسافات في الطرفين ودون رموز مسارات. يُقارَن الاسم الملاحَظ بالاسم المقصود حرفاً بحرف، ولا يُستنتج من الاسم شيء عن الخصوصية أو الإصدار أو محتوى الملف.
5. افصل المسارين. في الأصل نفسه يمكن أن تقترح السمة download اسماً. في النطاق الخارجي تُتجاهل السمة بحسب MDN، فيُفحص ما يرسله الخادم. لا تعدّل الرابط قبل أن تعرف أي مسار تختبره.
6. اختبر على متصفحات يستخدمها فريقك فعلاً. سجّل الإعدادات التي لاحظتها فقط، ولا تعمّم على كل المستخدمين.
شروط التوقف والتصعيد (مقترحة)
- ظهور اسم مشوّه أو مختلف عن المقصود في أي صف: أوقف الإرسال للعملاء عبر هذا الرابط.
- اختلاف النتيجة بين المتصفحات: لا تصحّح الرابط بالتخمين، وسلّم الصف للمطوّر.
- فتح الملف بدل حفظه عندما كان الحفظ مقصوداً: سجّل الحالة ولا تعتبرها خللاً قبل مراجعة الإعدادات.
- كون الملف على نطاق خارجي مع اسم غير صحيح: التصعيد لمن يتحكم بإعدادات الاستضافة.
تسليم المطوّر
يُسلَّم الصف الفاشل مع رابطه ونوع استضافته والاسم المقصود والملاحَظ والمتصفح. المطلوب اقتراحاً: نظر في ترويسة Content-Disposition مع filename* وfilename احتياطاً، ثم إعادة ملء الصف نفسه. للمزيد عن تجهيز الملفات العامة راجع موارد التسليم العملية.