راکت
حل شده

مشکل دانلود فایل در لاراول

6 پاسخ

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

    $file_id = $payment->file_id;
            $file = File::find($file_id);
            $linkdownload =[];
            foreach($file as $item){
                $linkdownload[] = $item->linkDownload;
            }
ثبت پرسش جدید

پاسخ‌ها

6
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

ارسال رسپانس به تعداد زیاد گزینه چندان مناسبی نیست. بجاش میتونید فایل‌هارو zip کنید و دز نهایت فایل زیپ رو کاربر دانلود کنه و بعد هم پاک بشه از روی سرور.

برای زیپ میتونید از لایبرری‌های زیر استفاده کنید:

https://packagist.org/packages/zanysoft/laravel-zip
https://github.com/Chumper/Zipper

درون حلقه Foreach فایل‌هارو به زیپ اضافه میکنید و سپس:

return response()->download($pathToZIPFile)->deleteFileAfterSend();
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

کلاس respone در لاراول این کار رو انجام میده، میتونید از هلپر متد هم استفاده کنید.

return response()->download($pathToFile, $name, $headers);

آرگومان دوم و سوم اختیاری هستند

  • ۲: نام فایلی که کاربر دانلود میکند
  • ۳: هر گونه هِدِر که بخواهید به این رسپانس اضافه کنید.

موفق باشید

حسین صادقی
حسین صادقی
@Hossein.sadeGHi

@ali.bayat
ممنون از پاسخگویی
مشکلی که برام وجود داره لینک های دانلود بصورت آرایه هست و رسپانس دانلود میگه باید رشته بدی
با foreach هم امتحان کردم نمیدونم چرا فقط ی لینک رو برمیگردونه.

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

می‌خواهید کاربر همزمان چند فایل رو دانلود کنه؟

حسین صادقی
حسین صادقی
@Hossein.sadeGHi
reza gerami
reza gerami
@r.gerami25

با سلام خدمت تمام دوستان

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

مشکلی که هست اینه که بعد از اینکه دانلود انجام شد دیگه پروسه دانلود تمام نمی شود و در واقع فایل دانلود شده در انتهای دانلود به مشکل می خورد و فایل سالم دانلود نمی شود.
در انتهای پروسه دانلود به مدت نامتناهی پروگرس بار شروع به چرخیدن میکنه.
نمی دونم تونستم منظور رو بفهمونم یا نه ولی هر روشی رو چک کردم و حتی با php هم کدش رو نوشتم این مشکل هست.

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

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

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