سلام دوستان.
روتی که برای downloads/2018/4/file.zip/1 نوشته میشه چطوریه با توجه به اینکه سال و ماه تغییر خواهد کرد؟
(حضوری ذهن ندارم فکر کنم پروژه ای که این کد رو در اون استفاده کردیم ورژن 5.5 بود حتما کد رو تست کنید.
مثالی از تشخیص خودکار هدر:
$file = File::get($path);
$type = File::mimeType($path);
$response = Response::make($file, 200);
$response->header("Content-Type", $type);
+
بله گاهی ممکن هست مسئله ای پیش نیاد ولی گاهی هم مسئله پیش میاد!
سلام
نمی دونم درست متوجه منظورتون شدم یا خیر.
route رو به صورت زیر بنویسید:
Route::get('downloads/{year}/{month}/{day}/{fileName}.{extension}', 'FileController@download');
برای تابع مربوطه در کنترلر هم ورودی ها رو تنظیم کنید، مثلا:
public function downlod($year,$month,$day,$fileName,$extension){}
فقط حواستون باشه که در این تابع حتما در کنار لود فایل از محل ذخیره اصلی هدر رو هم باید متناسب با extension ست کنید.
تنها مورد باقی مانده ساخت لینک هست که در سایت استفاده کنید.
برای این منظور با توجه به اینکه آدرس متغیر هست پیشنهاد بنده این هست که آدرس ها رو در دیتابیس ذخیره کنید.
پ ن:
مجددا امیدوارم درست متوجه سوالتون شده باشم!
شاید پاسخ شما همینجا باشد
خیلی ممنون آره سوالم دقیقاً همین بود.
لطفاً یه مثال برای تنظیم هدر بگید چون توی آموزشی که من دیدم بدون تنظیم هدر دانلود انجام میشه و ظاهرا مشکلی پیش نمیاد.
سلام
امروز موردی برخوردم شاید به کار شما هم بیاد.
اگر از نسخه 5.6 استفاده می کنید بخش Downloading Files از https://laravel.com/docs/5.6/filesystem رو مطالعه بفرمایید شاید راه ساده تری هم پیشنهاد داده.
من از این روش استفاده کردم:
$realPathFile = realpath(storage_path($filePath));
$fileName = $file->file_name;
$type = ['Content-Type' => \File::mimeType($realPathFile)];
return response()->download($realPathFile, $fileName, $type);