Abdollah
6 سال پیش توسط Abdollah مطرح شد
6 پاسخ

مشکل در نوشتن route

سلام دوستان.

روتی که برای downloads/2018/4/file.zip/1 نوشته میشه چطوریه با توجه به اینکه سال و ماه تغییر خواهد کرد؟


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

(حضوری ذهن ندارم فکر کنم پروژه ای که این کد رو در اون استفاده کردیم ورژن 5.5 بود حتما کد رو تست کنید.
مثالی از تشخیص خودکار هدر:

        $file = File::get($path);
        $type = File::mimeType($path);
        $response = Response::make($file, 200);
        $response->header("Content-Type", $type);

+
بله گاهی ممکن هست مسئله ای پیش نیاد ولی گاهی هم مسئله پیش میاد!


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 6 سال پیش مطرح شد
0

با سلام متوجه سوالتون نشدم !
این روت داستانش چیه اصلا اگر در مورد فایل های استاتیک هست ! ممکنه مربوط به آدرس قرار گیریش در هاستتون باشه


سجاد
تخصص : برنامه نویس
@sajaddp 6 سال پیش آپدیت شد
1

سلام
نمی دونم درست متوجه منظورتون شدم یا خیر.
route رو به صورت زیر بنویسید:

Route::get('downloads/{year}/{month}/{day}/{fileName}.{extension}', 'FileController@download');

برای تابع مربوطه در کنترلر هم ورودی ها رو تنظیم کنید، مثلا:

public function downlod($year,$month,$day,$fileName,$extension){}

فقط حواستون باشه که در این تابع حتما در کنار لود فایل از محل ذخیره اصلی هدر رو هم باید متناسب با extension ست کنید.

تنها مورد باقی مانده ساخت لینک هست که در سایت استفاده کنید.
برای این منظور با توجه به اینکه آدرس متغیر هست پیشنهاد بنده این هست که آدرس ها رو در دیتابیس ذخیره کنید.

پ ن:
مجددا امیدوارم درست متوجه سوالتون شده باشم!


Abdollah
@abdollahsam 6 سال پیش مطرح شد
0

خیلی ممنون آره سوالم دقیقاً همین بود.

لطفاً یه مثال برای تنظیم هدر بگید چون توی آموزشی که من دیدم بدون تنظیم هدر دانلود انجام میشه و ظاهرا مشکلی پیش نمیاد.


سجاد
تخصص : برنامه نویس
@sajaddp 6 سال پیش مطرح شد
1

(حضوری ذهن ندارم فکر کنم پروژه ای که این کد رو در اون استفاده کردیم ورژن 5.5 بود حتما کد رو تست کنید.
مثالی از تشخیص خودکار هدر:

        $file = File::get($path);
        $type = File::mimeType($path);
        $response = Response::make($file, 200);
        $response->header("Content-Type", $type);

+
بله گاهی ممکن هست مسئله ای پیش نیاد ولی گاهی هم مسئله پیش میاد!


سجاد
تخصص : برنامه نویس
@sajaddp 6 سال پیش مطرح شد
1

سلام
امروز موردی برخوردم شاید به کار شما هم بیاد.

اگر از نسخه 5.6 استفاده می کنید بخش Downloading Files از https://laravel.com/docs/5.6/filesystem رو مطالعه بفرمایید شاید راه ساده تری هم پیشنهاد داده.


Abdollah
@abdollahsam 6 سال پیش آپدیت شد
0

من از این روش استفاده کردم:

        $realPathFile = realpath(storage_path($filePath));

        $fileName = $file->file_name;

        $type = ['Content-Type' => \File::mimeType($realPathFile)];

        return response()->download($realPathFile, $fileName, $type);

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

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