DownloadController.php 2.53 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<?php

namespace App\Http\Controllers\Webprofile\Front;

use App\Http\Controllers\Controller;
use App\Models\Webprofile\Categories;
use App\Models\Webprofile\CategoriesFile;
use App\Models\Webprofile\Design;
use App\Models\Webprofile\File;
use App\Models\Webprofile\Menu;
use App\Models\Webprofile\Posts;
use App\Repositories\Webprofile\FileRepository;

class DownloadController extends Controller
{
    public function index()
    {
18 19 20 21 22 23 24 25
        $categoriesFile = CategoriesFile::where('is_active', 1)->orderBy('created_at', 'DESC')->with(['rFile'])->get();
        $setting = webprofilesetting();
        $menu = Menu::orderby('urutan', 'asc')->get();
        $hot = Posts::where('post_status', '1')->orderby('viewer', 'desc')->limit('5')->get();
        $categories = Categories::where('is_active', '1')->get();
        $widget_right = Design::where('name_design', 'widget_right')->orderBy('urutan', 'ASC')->get();
        $widget_left = Design::where('name_design', 'widget_left')->orderBy('urutan', 'ASC')->get();
        $footer = Design::where('name_design', 'like', '%footer_row%')->get();
26 27

        $data = [
28 29 30 31 32 33 34 35
            'categoriesFile' => $categoriesFile,
            'setting' => $setting,
            'menu' => $menu,
            'hot' => $hot,
            'categories' => $categories,
            'widget_right' => $widget_right,
            'widget_left' => $widget_left,
            'footer' => $footer,
36 37
        ];

38
        return view('webprofile.front.'.$setting['theme'].'.download', $data);
39 40 41 42 43 44
    }

    public function downloadFile($id)
    {
        $setting = webprofilesetting();

45 46
        $fileModel = new File();
        $fileRepo = new FileRepository($fileModel);
47

48
        $dbfile = File::find($id);
49 50

        if ($setting['external_storage'] == 1) {
51
            $file = $setting['url_static'].'/'.$setting['directory'].'/file/'.$dbfile->file;
52
        } else {
53
            $file = url('/storage/file/'.$dbfile->file);
54
        }
55

56 57 58
        $fileRepo->countDownload($dbfile);

        // if ($fileRepo->is_url_exist($file)) {
59
        $filename = $dbfile->slug;
60 61 62 63 64 65 66 67
         $tempImage = tempnam(sys_get_temp_dir(), $filename);
         stream_context_set_default([
                 'ssl' => [
                     'verify_peer' => false,
                     'verify_peer_name' => false,
                 ],
             ]);
         copy($file, $tempImage);
68

69 70

        return response()->download($tempImage, $filename)->deleteFileAfterSend(true);
71 72 73 74 75 76
        // } else {
        //     Alert::error('File tidak ditemukan');
        //     return redirect()->back();
        // }
    }
}