حسین صادقی
6 سال پیش توسط حسین صادقی مطرح شد
6 پاسخ

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

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

    $file_id = $payment->file_id;
            $file = File::find($file_id);
            $linkdownload =[];
            foreach($file as $item){
                $linkdownload[] = $item->linkDownload;
            }

ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
1

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

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

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

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

return response()->download($pathToZIPFile)->deleteFileAfterSend();

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
2

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

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

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

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

موفق باشید


حسین صادقی
@Hossein.sadeGHi 6 سال پیش مطرح شد
1

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
2

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


حسین صادقی
@Hossein.sadeGHi 6 سال پیش آپدیت شد
2
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
1

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

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

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

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

return response()->download($pathToZIPFile)->deleteFileAfterSend();

reza gerami
@r.gerami25 5 سال پیش مطرح شد
0

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

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

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

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


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

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