NueForm

أنواع أسئلة الوسائط

توثيق لأنواع أسئلة رفع الملفات، الرسم، تسجيل الفيديو/الصوت، والتوقيع.

رفع الملفات

يتيح للمستجيبين رفع ملفات من أجهزتهم. يدعم قيود نوع الملف وحدود الحجم القابلة للتكوين.

سؤال رفع الملفات
سؤال رفع ملفات.

معرّف النوع: file_upload

الخصائص

الخاصيةالنوعالوصفالافتراضي
choicesChoice[]عند الاستخدام لرفع الملفات، يحدد حقل label لكل خيار نوع MIME أو امتداد ملف مسموح (مثل "application/pdf" أو "image/*"). إذا كانت فارغة، تُقبل جميع أنواع الملفات.[] (جميع الأنواع)
maxnumberالحد الأقصى لحجم الملف بالميغابايت (MB).بدون (ينطبق حد المنصة)

تخزين الملفات

تُخزن الملفات المرفوعة في تخزين Vercel Blob. يتضمن كل سجل رفع:

الحقلالوصف
blobUrlرابط تخزين Vercel Blob للملف.
originalNameاسم الملف الأصلي من المستخدم (مثل resume.pdf).
uuidNameاسم مبني على UUID مخزن في blob (مثل a1b2c3d4.pdf).
sizeحجم الملف بالبايت.
contentTypeنوع MIME (مثل application/pdf أو image/png).

تتبع التخزين

يُتتبع إجمالي استهلاك تخزين الملفات لكل مستخدم بالبايت (storageUsedBytes على نموذج User). تختلف حدود التخزين حسب مستوى الخطة.

التحقق

إذا كان required صحيحًا، يجب على المستجيب رفع ملف قبل المتابعة.

معاملات القفز المنطقي

equals, not_equals, is_answered, is_not_answered

تنسيق الإجابة

تُخزن الإجابة ككائن FileUploadValue:

json
{
  "fileId": "abc123",
  "originalName": "resume.pdf",
  "size": 245760,
  "contentType": "application/pdf",
  "downloadUrl": "/api/files/resume.pdf?id=abc123"
}

تُنسب رفعات الملفات إلى معرّف النموذج واختياريًا معرّف المستخدم. رفعات المستجيبين (المجهولة) لها userId معيّن كـ null، بينما رفعات وسائط المُنشئ (صور الأسئلة) لها معرّف المستخدم.


الرسم

لوحة رسم حر حيث يمكن للمستجيبين رسم أعمال فنية أو مخططات أو تعليقات توضيحية.

معرّف النوع: drawing

الخصائص

الخاصيةالنوعالوصفالافتراضي
canvasSizestringحجم لوحة الرسم. الخيارات: small أو medium أو large.medium

أحجام اللوحة

الحجمالوصف
smallلوحة مدمجة مناسبة للرسومات البسيطة أو الأيقونات.
mediumلوحة قياسية للمخططات والرسوم التوضيحية.
largeلوحة موسعة للرسومات المفصّلة.

التفاعل

  • تدعم لوحة الرسم الرسم الحر بالماوس أو اللمس.
  • يمكن للمستجيبين الرسم والمسح والتراجع عن عملهم.
  • يُصدّر الرسم النهائي كملف صورة.

التحقق

إذا كان required صحيحًا، يجب على المستجيب إنشاء رسم قبل المتابعة.

معاملات القفز المنطقي

equals, not_equals, is_answered, is_not_answered

تنسيق الإجابة

تُخزن الإجابة ككائن FileUploadValue (يُحفظ الرسم كملف صورة):

json
{
  "fileId": "def456",
  "originalName": "drawing.png",
  "size": 102400,
  "contentType": "image/png",
  "downloadUrl": "/api/files/drawing.png?id=def456"
}

لا يعرض سؤال الرسم زر "موافق" منفصل. يرسل المستجيبون رسمهم باستخدام عناصر التنقل القياسية للنموذج.


تسجيل الفيديو/الصوت

التقاط ردود فيديو أو صوت مباشرة عبر متصفح المستجيب باستخدام كاميرا وميكروفون الجهاز.

معرّف النوع: recording

الخصائص

الخاصيةالنوعالوصفالافتراضي
recordingModestringنوع التسجيل. الخيارات: video أو audio.video
maxDurationnumberأقصى مدة تسجيل بالثواني.120 (دقيقتان)

أوضاع التسجيل

الوضعالوصف
videoيسجل الفيديو والصوت باستخدام كاميرا وميكروفون الجهاز.
audioيسجل الصوت فقط باستخدام ميكروفون الجهاز. لا حاجة لكاميرا.

التفاعل

  1. ينقر المستجيب على زر "بدء التسجيل".
  2. يطلب المتصفح أذونات الكاميرا/الميكروفون (إذا لم تُمنح بالفعل).
  3. يُعرض معاينة مباشرة أثناء التسجيل.
  4. ينقر المستجيب على "إيقاف التسجيل" للإنهاء.
  5. تُعرض معاينة للتسجيل.
  6. يمكن للمستجيب إعادة التسجيل أو المتابعة.

متطلبات المتصفح

  • يتطلب متصفحًا حديثًا يدعم MediaRecorder API.
  • يجب على المستجيب منح أذونات الكاميرا و/أو الميكروفون.
  • يُطلب HTTPS لالتقاط الوسائط (جميع روابط NueForm تعمل بـ HTTPS افتراضيًا).

التحقق

إذا كان required صحيحًا، يجب على المستجيب إكمال تسجيل قبل المتابعة.

معاملات القفز المنطقي

equals, not_equals, is_answered, is_not_answered

تنسيق الإجابة

تُخزن الإجابة ككائن FileUploadValue:

json
{
  "fileId": "ghi789",
  "originalName": "recording.webm",
  "size": 524288,
  "contentType": "video/webm",
  "downloadUrl": "/api/files/recording.webm?id=ghi789"
}

يمكن أن تنتج تسجيلات الفيديو ملفات كبيرة. فكّر في تعيين maxDuration معقول للحفاظ على أحجام ملفات يمكن إدارتها. تسجيل فيديو مدته دقيقتان بجودة قياسية ينتج عادة ملفًا بين 5-15 ميغابايت.


التوقيع

لوحة توقيع رقمية حيث يمكن للمستجيبين رسم توقيعهم باستخدام الماوس أو القلم أو الإصبع.

سؤال التوقيع
سؤال التقاط توقيع.

معرّف النوع: signature

الخصائص

لا يحتوي نوع سؤال التوقيع على خصائص إضافية بخلاف خصائص السؤال المشتركة.

التفاعل

  • تُعرض لوحة توقيع بلوحة فارغة.
  • يرسم المستجيب توقيعه باستخدام الماوس أو القلم أو اللمس.
  • يتوفر زر "مسح" للبدء من جديد.
  • يُلتقط التوقيع كمسار متجه أو صورة.

التحقق

إذا كان required صحيحًا، يجب على المستجيب رسم توقيع قبل المتابعة.

معاملات القفز المنطقي

equals, not_equals, is_answered, is_not_answered

تنسيق الإجابة

تُخزن الإجابة كـ سلسلة نصية (عادة رابط بيانات أو صورة مشفرة بـ base64 للتوقيع).

التوقيعات خفيفة الوزن مقارنة بالرسومات والتسجيلات. تُخزن عادة كمسارات SVG أو صور PNG صغيرة، مما ينتج ملفات أقل بكثير من 100 كيلوبايت.

مرفقات الوسائط على أسئلة الوسائط

مثل جميع أنواع الأسئلة الأخرى، تدعم أسئلة التقاط الوسائط مرفقات الوسائط (صور، فيديوهات، أيقونات، رموز QR). يتيح لك هذا عرض مثال أو تعليمات بجانب واجهة الالتقاط. مثلًا، قد تعرض صورة توقيع نموذجية كوسائط على سؤال توقيع، أو تعرض رمز QR على سؤال رفع ملفات يرتبط بصفحة رفع مرافقة على الهاتف المحمول.

راجع دليل إنشاء النماذج لتفاصيل خيارات الوسائط وإعدادات التخطيط.

آخر تحديث: 6 أبريل 2026