راکت
حل شده

خطای PostTooLargeException در لاراول

7 پاسخ

سلام
برای آپلود یک فیلم با حجم ۳۲ مگ خطای Illuminate \ Http \ Exceptions \ PostTooLargeException برخوردم
با xampp کار میکنم و مقادیر memory_limit , post_max_size , upload_max_filesize رو هم تغییر دادم و همه رو برابر ۱۰۰۰۰M گذاشتم.

باز هم همین خطا رو دارم .

از لاراول ۵.۶ استفاده میکنم

ممنون میشم راهنمایی کنید .

ثبت پرسش جدید

پاسخ‌ها

7
احسان
احسان
@beigi.ehsan
بهترین پاسخ

تشکر از دوستانی که راهنمایی کردند

الحمدالله مشکل حل شد

باید یک middleware با نام ValidatePostSize به پروژه اضافه کنیم که همراه با عبارت پایین در فایل Kernel.php باعث میشه لاراول اجازه آپلود فاایل های با حجم بالا رو بده

عبارت مورد نظر : IlluminateFoundationHttpMiddlewareValidatePostSize::class,

عرشیا سعیدی
عرشیا سعیدی
@arshiya73arshiya

تخصص: php ، لاراول ، وردپرس

به این لینک مراجعه کن شاید نوع ست کردن مقادیرت باشه که تاثیر میذاره

https://laracasts.com/discuss/channels/servers/interventionimage-memory-limit?page=1

احسان
احسان
@beigi.ehsan

ممنون

این لینک رو دیده بودم
برای تصاویر از این پکیج استفاده کردم و مشکلی نیست
فایل من فیلم هست و عکس نیست که از Intervention استفاده کنم
الان مشکل سر آپلود بالای 8 مگ است با وجود تغییر مقادیر memory_limit , post_max_size , upload_max_filesize

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

ناصر رمضانپور
ناصر رمضانپور
@na.rmpr

تخصص: برنامه نویس وب

بعد از انجام تفییرات ی بار php info بگیر ببین تغییرات در وب سرور اعمال شده یا نه؟

احسان
احسان
@beigi.ehsan

بله اعمال شده

تو یک فرم با php خام عملیات آپلود رو انجام دادم
مقادیر memory_limit , post_max_size , upload_max_filesize رو کم کردم و به فایل آپلود شده خطا داد و با مقادیر زیاد تر که الان روی 2048M تنظیم شده خطا نداد و عملیات گرفتن فایل آپلود شده به درستی انجام شد .

پس مشکل از تنظیمات xampp نیست . هر چی هست مربوط به لاراول هست .

بعضی ها گفته بودند کلاس PostTooLargeException اضافه کن . این کار رو هم کردم تفاوتی نداشت

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

سلام

عجب!
من بدون این روش در لاراول 5.6 و قبل تر دارو استفاده میکنم و فقط با تغییر در فایل PHP کارم راه افتاده
این میدلور رو کی بهتون پیشنهاد داده؟!

احسان
احسان
@beigi.ehsan

جستجو کردم تو اینترنت دیدم بعضی ها درباره تغییرات در یک کلاسی صحبت مبکنند به اسم ValidatePostSize

بعد تو یکی از سایت ها آدرس این کلاس رو داده بود که در middleware قرار داشت , ظاهرا جزء middleeare های تعریف شده در لاراول هست چون در فایل Kernel.php قبلا اضافه شده اما کلاسش در فولدر middleware نبود که باید اضافه بشه .

اینطور با هر حجمی میتونید فایل رو آپلود کنید و إلا بیشتر از 8 مگ رو خطا PostTooLargeException میده و خطا هم مربوط middleware ای با نام ValidatePostSize است . حتی با تغییر در فایل php.ini

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

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