راکت
حل شده

ایجاد محدودیت حجم upload برای هر کاربر با unisharp

2 پاسخ

با سلام. من میخواستم برای هر کاربر عادی حجم آپلود رو در unisharp محدود کنم به مثلا 50MB و بعضی از کاربرا مثلا با تهیه اشتراک بتونن بیشتر آپلود کنند.در فایل confing فایل منیجر فقط میشد یه محدودیت کلی گذاشت و این مورد قابل پیاده سازی نبود.ممنون میشم راهنمایی کنید.

ثبت پرسش جدید

پاسخ‌ها

2
مهدی
مهدی
@mahdiam200

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

بهترین پاسخ

با تشکر از آقای شیری نژاد برای پاسخشون . با استفاده از روش زیر تونستم مشکلم حل کنم:
در ابتدا با استفاده از تابع زیر میشه حجم هر دایرکتوری رو به دست آورد

    function folderSize ($dir)
    {
        $size = 0;

        foreach (glob(rtrim($dir, '/').'/*', GLOB_NOSORT) as $each) {
            $size += is_file($each) ? filesize($each) : $this->folderSize($each);
        }

        return $size;
    }

برای اعمال محدودیت حجم برای هر شخص کافیه که به مسیر زیر در Vendor که پکیج اونجا نصب شده رفت

Unisharp/laravel-filemanager/src

و در فایل LfmPath.php علاوه بر اضاف کردن متد folderSize در متد uploadValidator نیز کدهای زیر اضاف کرد

      $photo_path = "storage/photos/".auth()->user()->id;   
        $file_path = "storage/files/".auth()->user()->id;
        $directory_size =  $this->folderSize($photo_path) + $this->folderSize($file_path);

            if ($directory_size > 30000) {
                return $this->error('file-size', ['max' => 30000]);
            }
حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

سلام با unisharp آشنایی ندارم ولی هنگام آپلود فایل در اعتبار سنجی میتونی نوع کاربر رو دریافت کنی و متناسب با او کاربر حجم دلخواه آپلودو بهش بدی.

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

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

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