رفتن به محتوا

آپلود فایل‌ها

Gin مدیریت آپلود فایل‌های multipart را ساده می‌کند. فریم‌ورک متدهای داخلی روی gin.Context برای دریافت فایل‌های آپلود شده ارائه می‌دهد:

  • c.FormFile(name) — دریافت یک فایل از درخواست بر اساس نام فیلد فرم.
  • c.MultipartForm() — تجزیه کل فرم multipart و دسترسی به تمام فایل‌های آپلود شده و مقادیر فیلدها.
  • c.SaveUploadedFile(file, dst) — یک متد کمکی که فایل دریافت شده را در مسیر مقصد روی دیسک ذخیره می‌کند.

محدودیت حافظه

Gin یک محدودیت حافظه پیش‌فرض ۳۲ مگابایت برای تجزیه فرم multipart از طریق router.MaxMultipartMemory تنظیم می‌کند. فایل‌هایی که در این محدودیت هستند در حافظه بافر می‌شوند؛ هر چیزی فراتر از آن در فایل‌های موقت روی دیسک نوشته می‌شود. می‌توانید این مقدار را مطابق نیازهای برنامه خود تنظیم کنید:

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

نکته امنیتی

نام فایل گزارش شده توسط کلاینت (file.Filename) نباید مورد اعتماد قرار گیرد. همیشه قبل از استفاده در عملیات سیستم فایل آن را پاکسازی یا جایگزین کنید. برای جزئیات بیشتر مستندات Content-Disposition در MDN را ببینید.

زیرصفحات