راکت
حل شده

خواندن نام فایل های پوشه storage در لاراول

11 پاسخ

من از طریق کرون جاب از دیتا بیس بکاپ میگیرم روزانه و در مسیر storage/app/laravel ذخیره میشه
الان میخوام بکاپ رو به ایمیل ارسال کنم مشکلی که الان دارم این هست مه نمیتدونم چجوری نام فابل بکاپ رو بخونم چون چندین فایل بکاپ وجود دارد
اگر بخوام نام کلیه فایل ها رو بخونم باید چیکار کنم
ممنون میشم راهنمایی بفرمایید

ثبت پرسش جدید

پاسخ‌ها

11
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

اگر به مستندات خود لاراول در لینک زیر مراجعه کنید خیلی راحت و همراه با مثال توضیح داده:
https://laravel.com/docs/8.x/filesystem#directories

برای دسترسی به فایل ها:

use Illuminate\Support\Facades\Storage;

$files = Storage::files($directory);

$files = Storage::allFiles($directory);

و همچنین دایرکتوری ها:

$directories = Storage::directories($directory);

// Recursive...
$directories = Storage::allDirectories($directory);
مهدی
مهدی
@mrmmg

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

@majeeddehghan
راه خوبی برای بکاپ انتخاب کردی اما اگه میخوای از این فرایند خودت رو خلاص کنی بهترین راهکار استفاده از پکیج laravel backup از spatie هست. این میاد و بر اساس کانفیگی که تنظیم میکنی به صورت روزانه در ساعت مشخصی بکاپ میگیره و در جایی ذخیره میکنه، حالا نکته مهمش همین ایمیل کردن یا ذخیره در فضای ابری مثل گوگل درایو یا دراپ باکس هست که با استفاده از پکیج هایی که برای لاراول هست میتونی یه فایل سیستم اختصاصی برای خودت درست کنی و فایل بکاپ رو مستقیم بفرستی روی اون فضا
خوبیش اینه که میتونی جهت اطمینان روی چندین فضای مختلف اینکار رو انجام بدی!
کمی سرچ بزنی به ایده های خوبی در این زمینه میرسی

مجید
مجید
@majeeddehghan

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

@mrmmg من از همین پکیج با کرون جاب برای بکاپ استفاده میکنم و بکاپ روی هاست خودم ذخیره میشه
امکانش هست راهنمایی کنید که چطوری میشه مستقیم فایل بکاپ رو به ایمیل ارسال کرد
من سعی دارم به صورت دستی آخرین بکاپ رو با کرون جاب به طور خودکار بعد از بکاپ به ایمیل ارسال کنم
ممنون میشم راهنمایی کنید

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

مهدی
مهدی
@mrmmg

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

@majeeddehghan
ببین مجید جان به نظرم بهترین راهکار برای این هست از event های خود این پکیج استفاده کنی. یعنی اینکه بیای و به ایونت حساس باشی اگر فلان ایونت اتفاق افتاد فلان عمل انجام بشه.
مثلا در مورد همین اگر BackupZipWasCreated رخ داد اونوقت بری پوشه storage رو بررسی کنی بر اساس نامگذاری که تعیین کردی فایل zip بکاپ رو پیدا کنی و ایمیلش کنی. این راهکار رو میتونی بدون استفاده از پکیج خاصی و با خود لاراول مدیریت کنی.
این هم داکیومنت رسمی در مورد گوش دادن به ایونت ها

مجید
مجید
@majeeddehghan

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

@mrmmg من داکیومنت رو بررسی کردم اما دقیقا نفمیدم باید چجوری باید event را کنترل کنم
و اینکه نام فایل های بکاپ با ساعت و تاریخ بکاپ نام گذاری میشن
میشه بیشتر راهنمایی بفرمایید

مهدی
مهدی
@mrmmg

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

@majeeddehghan کمی بیشتر در مورد ایونت ها سرچ بزنید متوجه خواهید شد چون اینجا جای آموزش دادن نیست و از این بابت متاسفم
نام فایل های بکاپ رو میتونید تغییر بدید یا حتی بهش prefix اضافه کنید!

مجید
مجید
@majeeddehghan

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

@mhyeganeh من میخوام نام فایل ها رو به صورت یک آرایه بگیرم داخل مستندات لاراول هم گشتم چیزی پیدا نکردم
( در اصل دنبال آخرین فایل ذخیره شده هستم داخل دایرکتوری هستم )
امکانش هست راهنمایی بفرمایید

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

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

$files = scandir('data', SCANDIR_SORT_DESCENDING);
return $files[0];
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

@majeeddehghan
همون نمونه کدی که بالا ارسال کردم اسم تمام فایل های مسیر مشخص شده رو در قالب یک آرایه بر می گردونه دیگه دوست عزیز. امتحانش کردید؟

مجید
مجید
@majeeddehghan

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

@mhyeganeh بله تست کردم مشکلم برطرف شد ممنون

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

موفق باشید 👍🌹

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

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