آپلود فایلها
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 MiBrouter.MaxMultipartMemory = 8 << 20 // 8 MiBنکته امنیتی
نام فایل گزارش شده توسط کلاینت (file.Filename) نباید مورد اعتماد قرار گیرد. همیشه قبل از استفاده در عملیات سیستم فایل آن را پاکسازی یا جایگزین کنید. برای جزئیات بیشتر مستندات Content-Disposition در MDN را ببینید.
زیرصفحات
- تک فایل — آپلود و ذخیره یک فایل در هر درخواست.
- چند فایل — آپلود و ذخیره چندین فایل در یک درخواست.
- محدودیت حجم آپلود — محدود کردن حجم آپلود با استفاده از
http.MaxBytesReader.