با سلام. من میخواستم برای هر کاربر عادی حجم آپلود رو در unisharp محدود کنم به مثلا 50MB و بعضی از کاربرا مثلا با تهیه اشتراک بتونن بیشتر آپلود کنند.در فایل confing فایل منیجر فقط میشد یه محدودیت کلی گذاشت و این مورد قابل پیاده سازی نبود.ممنون میشم راهنمایی کنید.
با تشکر از آقای شیری نژاد برای پاسخشون . با استفاده از روش زیر تونستم مشکلم حل کنم:
در ابتدا با استفاده از تابع زیر میشه حجم هر دایرکتوری رو به دست آورد
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]);
}
سلام با unisharp آشنایی ندارم ولی هنگام آپلود فایل در اعتبار سنجی میتونی نوع کاربر رو دریافت کنی و متناسب با او کاربر حجم دلخواه آپلودو بهش بدی.
با تشکر از آقای شیری نژاد برای پاسخشون . با استفاده از روش زیر تونستم مشکلم حل کنم:
در ابتدا با استفاده از تابع زیر میشه حجم هر دایرکتوری رو به دست آورد
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]);
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟