description

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

- 2 هفته پیش
توسط عبدالله آپدیت شد
عبدالله ( 249 تجربه )
2 هفته پیش

سلام دوستان.

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

بهترین پاسخ انتخاب شده توسط عبدالله
سجاد
2 هفته پیش

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

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

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

حسام موسوی ( 32905 تجربه )
2 هفته پیش

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

سجاد ( 2146 تجربه )
2 هفته پیش

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

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

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

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

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

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

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

عبدالله ( 249 تجربه )
2 هفته پیش

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

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

سجاد ( 2146 تجربه )
2 هفته پیش

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

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

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

سجاد ( 2146 تجربه )
2 هفته پیش

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

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

عبدالله ( 249 تجربه )
2 هفته پیش

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

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

        $fileName = $file->file_name;

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

        return response()->download($realPathFile, $fileName, $type);
برای ارسال پاسخ باید وارد سایت شوید