راکت
حل شده

آپلود کردن فایل ها با حجم بالا در لاراول

2 پاسخ

سلام برای آپلود کردن فایل ها با حجم بالا(مثلا 500 مگا بایت) در لاراول چی کار باید کرد؟

vahiid
vahiid
@vahiidrah
ثبت پرسش جدید

پاسخ‌ها

2
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

بصورت خاص چند تا تنظیم خاص هست که باید در تنظیمات سرورتون و در فایل php.ini و همچنین فایل کانفیگ سرور بلاکتون انجام بدید. (ربطی به لاراول نداره)

یکش uploadmaxfilesize هست
دیگریش postmaxsize

که باید ماکزیممش رو مطابق با نیازتون مثلا 500MB تنظیم کنید.

همچنین یک مورد دیگه هم maxexecutiontime هست که حداکثر زمان اجرای دستور قبل از صدور ارور timeout رو مشخص میکنه که پیش فرضش اگر اشتباه نکنم 30 ثانیه هست و احتمالا 500 مگابایت به زمانی بیشتر از این نیاز داشته باشه.

post_max_size = 500M;
upload_max_filesize = 500M
...

و اما در خود لاراول هم متدی که برای آپلود استفاده میکنید مهم هست. برای فایل های بزرگ باید از streaming استفاده بشه که این کار بصورت اتومات اگر از متد‌ put() استفاده کنید هندل میشه.

Storage::disk('local')->put('file.txt', 'Contents');

یک احتمالی هم وجود داره که با محدودیت RAM مواجه بشید در سمت سرور که یا باید تنظیماتش رو در php.ini دستکاری کنید یا منابع سرورتون رو تقویت کنید. ولی فکر کنم برای این قضیه هم یک سری پکیج های خاص وجود داره که میان فایل های بزرگ رو تکه تکه (chunk) میکنند تا این مشکل برطرف بشه.

لینک توضیحات بیشتر و تفصیلی:
https://www.sitepoint.com/upload-large-files-in-php/
https://stackoverflow.com/a/42896304/7080296

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@vahiidrah
سلام.
باید کانفیگ های مربوط به آپلود رو در php.ini تنظیم کنید.

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام