تخطَّ إلى المحتوى

رفع الملفات

يجعل Gin التعامل مع رفع الملفات متعدد الأجزاء أمراً سهلاً. يوفر الإطار طرقاً مدمجة في gin.Context لاستقبال الملفات المرفوعة:

  • c.FormFile(name) — استرجاع ملف واحد من الطلب حسب اسم حقل النموذج.
  • c.MultipartForm() — تحليل نموذج الأجزاء المتعددة بالكامل، مما يتيح الوصول إلى جميع الملفات المرفوعة وقيم الحقول.
  • c.SaveUploadedFile(file, dst) — طريقة مريحة لحفظ ملف مستلم إلى مسار وجهة على القرص.

حد الذاكرة

يُعيّن Gin حد ذاكرة افتراضي قدره 32 ميجابايت لتحليل النماذج متعددة الأجزاء عبر router.MaxMultipartMemory. الملفات ضمن هذا الحد تُخزن مؤقتاً في الذاكرة؛ وأي شيء يتجاوزه يُكتب في ملفات مؤقتة على القرص. يمكنك تعديل هذه القيمة لتناسب احتياجات تطبيقك:

router := gin.Default()
// Lower the limit to 8 MiB
router.MaxMultipartMemory = 8 << 20 // 8 MiB

ملاحظة أمنية

اسم الملف الذي يبلغ عنه العميل (file.Filename) لا ينبغي الوثوق به. قم دائماً بتنظيفه أو استبداله قبل استخدامه في عمليات نظام الملفات. راجع توثيق Content-Disposition على MDN للمزيد من التفاصيل.

الصفحات الفرعية