56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
<?php
 | 
						|
 | 
						|
namespace app\controller;
 | 
						|
 | 
						|
use app\model\{DownloadModel, Category};
 | 
						|
use page\DxtcPageA;
 | 
						|
use think\Paginator;
 | 
						|
 | 
						|
class Download extends Base
 | 
						|
{
 | 
						|
    //列表页
 | 
						|
    public function index($categoryId = 0)
 | 
						|
    {
 | 
						|
        $rule       = Category::RULE_DOWNLOAD;
 | 
						|
        $categoryId = empty($categoryId) ? $this->request->param("category_id") : $categoryId;
 | 
						|
 | 
						|
        $category = Category::getById($categoryId);
 | 
						|
 | 
						|
        //没有category_id  则通过路由查询
 | 
						|
        $category = $category ?: Category::getByRuleAlias($rule);
 | 
						|
 | 
						|
        $description = $category['seo_description'] ?: $category['title'];
 | 
						|
        $keywords    = $category['seo_keywords'] ?: $category['title'];
 | 
						|
        $title       = $category['seo_title'] ?: $category['title'].' | '.$this->system['seo_title'];
 | 
						|
        $this->setSeo($title, $keywords, $description);
 | 
						|
        $listSort = ['a.sort' => 'desc'];
 | 
						|
 | 
						|
        // 自定义分页驱动
 | 
						|
        app('think\App')->bind(Paginator::class, DxtcPageA::class);
 | 
						|
 | 
						|
        $items = DownloadModel::getList($category['id'], $category['number'], '', [], 1, $listSort, false);
 | 
						|
        $items->each(function ($item) {
 | 
						|
            $item->size_text = sizeToStr($item->size);
 | 
						|
        });
 | 
						|
        $this->data['items']      = $items;
 | 
						|
        $this->data['category']   = $category;
 | 
						|
        $this->data['categoryId'] = $category['id'];
 | 
						|
        $this->data['bodyClass']  = 'main';
 | 
						|
 | 
						|
        return $this->view();
 | 
						|
    }
 | 
						|
 | 
						|
    public function file()
 | 
						|
    {
 | 
						|
        $id = input('id');
 | 
						|
        if (!$file = DownloadModel::getById($id)) {
 | 
						|
            return $this->error('文件不存在');
 | 
						|
        }
 | 
						|
 | 
						|
        if (!file_exists(public_path().$file['file'])) {
 | 
						|
            return $this->error('文件不存在');
 | 
						|
        }
 | 
						|
        return download(public_path().$file['file'], $file['title'].'.'.$file['suffix']);
 | 
						|
    }
 | 
						|
 | 
						|
} |