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

- 5 ماه پیش
توسط احسان آپدیت شد
احسان ( 85 تجربه )
5 ماه پیش

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

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

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

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

بهترین پاسخ انتخاب شده توسط احسان
احسان
5 ماه پیش

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

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

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

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

arshiya saeidi ( 3719 تجربه )
5 ماه پیش

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

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

احسان ( 85 تجربه )
5 ماه پیش

ممنون

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

ناصر رمضانپور ( 962 تجربه )
5 ماه پیش

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

احسان ( 85 تجربه )
5 ماه پیش

بله اعمال شده

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

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

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

احسان ( 85 تجربه )
5 ماه پیش

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

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

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

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

سیدعلی موسوی ( 22721 تجربه )
5 ماه پیش

سلام

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

احسان ( 85 تجربه )
5 ماه پیش

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

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

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

برای ارسال پاسخ باید وارد سایت شوید