JBolouri
4 سال پیش توسط JBolouri مطرح شد
10 پاسخ

افزایش سقف محدودیت حجم آپلود در لاراول

سلام دوستان..

توی پروژه لاراولم فایلای کوچک مثلا دو مگ درست آپلود میشن ولی فایلای بزرگ مثلا 50 مگ آپلود نمیشن..
چطور میتونم سقف آپلود رو افزایش بدم؟ تنظیماتش توی لاراول کجاست؟


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@javadbolouri72
سلام.
این محدودیت مربوط به لاراول نمیشه. باید در کانفیگ وب سرور و کانفیگ PHP این مقادیر رو افزایش بدید.
در فایل php.ini مقادیر زیر رو می تونید قرار بدید. این محدودیت رو به 100 مگابایت تغییر میده:

; Maximum allowed size for uploaded files.
upload_max_filesize = 100M

; Must be greater than or equal to upload_max_filesize
post_max_size = 100M

JBolouri
@javadbolouri72 4 سال پیش مطرح شد
0

@mohsenbostan

تست کردم بازم ارور داد..
چون با سرور دانلودی دارم تست میکنم از طریق filezilla همون فایل رو آپلود کردم قشنگ آپلود شد و محدودیتی نداشت..
ولی توی لاراول با ajax که آپلود میکنم فایل حجم بالا مثلا 8 مگ رو گیر میده..

دقیقا هم به قسمت save کردن فایل میرسه گیر میده کد زیر رو که بر میدارم دیگه این گیر رو نمیده..

Storage::disk('dlServer')->putFileAs( $tempFileDirectory , $file, $filename);

JBolouri
@javadbolouri72 4 سال پیش مطرح شد
0

@mohsenbostan
به timeout درخواست ربطی نداره؟
timeout رو توی ajax زیاد کردم و حتی 0 کردم بازم ارور میداد..

خود لاراول بصورت پیشفرض تایم اوت درخواستاش رو کجا میشه تنظیم کرد؟ شاید اونجا باید زیاد بشه؟

فایل 5 مگی هم آپلود کردم درست جواب داد ولی 8 مگ و بیشتر رو ارور میداد (500)


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@javadbolouri72
کانفیگ های وب سرور هم بررسی کنید، اگر باز هم همچنان حل نشد، تنها راه حل استریم کردن دیتا داخل فایل هستش. لینک زیر رو بررسی کنید. البته از درایور S3 استفاده کرده، شما می تونید بزارید روی local یا public:
https://freek.dev/235-upload-large-files-to-s3-using-laravel-5


JBolouri
@javadbolouri72 4 سال پیش مطرح شد
0

@mohsenbostan

ممنون میشم توضیح بدید با توجه به کد بالا که نوشتم چجوری فایل رو از داخل request بگیرم و بصورت استریم ذخیره کنم؟
تا حالا استریم نکردم


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
1

@javadbolouri72
یک دور از روش زیر استفاده کن:

request()->file('file')->store('files', 'dlServer');

JBolouri
@javadbolouri72 4 سال پیش مطرح شد
0

@mohsenbostan

اینم تست کردم همون ارور رو میده.. بنظرتون مشکل از کانفیگ xampp هست؟ توی سرور واقعی ران کنم اونجا درست عمل میکنه؟ چون این تا 5 مگ هم تست کردم بدون مشکل کار میکنه ولی بیشتر ارور میده.. سقف مجاز رو هم افزایش دادم..
timeout ی چیزی ربطی نداره به درخواستای ajax؟


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
1

@javadbolouri72
ببین مشکل حتما از محدودیت های PHP یا وب سرویس هستش. هر دو رو افزایش بده و سرویس هاشون رو یک دور ری استارت کن.


JBolouri
@javadbolouri72 4 سال پیش مطرح شد
0

@mohsenbostan

بجز php.ini اگر جای دیگه ای هم هست که باید تنظیم بشه لطفا بگید کجا برم


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
1

@javadbolouri72
بستگی داره از کدوم وب سرویس استفاده می کنید. Apache یا Ngnix. هر کدوم رو دارید کانفیگش رو بررسی کنید. توی نت سرچ کنید برای هر کدوم دقیق نوشته که باید چی کار کنید.


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

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