laravel 缩略

<?php

namespace App\Http\Controllers;

use App\Models\FileModel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Facades\Validator;
use Intervention\Image\Facades\Image;

class FileController extends Controller
{
    public function upload(Request $request,FileModel $fileModel){
        if ($request->isMethod('post')){
            $id = $request->input('id');
            $data['title'] = $request->input('title');
            $data['author'] = $request->input('author');
            $data['content'] = $request->input('content');
            $rules = [
                'title' => 'required',
                'author' => 'required',
                'content' => 'required',
            ];
            $msg = [
                'title.required' => '请定义标题',
                'author.required' => '请输入作者昵称',
                'content.required' => '请添加精彩内容吧',
            ];

            $valid =  Validator::make($data,$rules,$msg);
            if ($valid->fails()){
                $v = $valid->errors()->first();
                return "<script>alert('$v');location.href='file';</script>";
            }
            $file = $request->file('img');
            if (!$file){
                return "<script>alert('请上传文件');location.href='file';</script>";
            }else{
                //限制上传格式
                $impose = ['jpg','png','gif','txt'];
                $ext = $file->getClientOriginalExtension();
                if (!in_array($ext,$impose)){
                    return "<script>alert('只能上传jpg,png,gif和txt格式文件');location.href='file';</script>";
                }else{
                    $fileName = $id.'.'.$ext;
                    $path = __DIR__.'/../../../data/uploads/'.$id.".jpg";
                    Image::make($file->path())->resize(200,100)->save($path);
                    $data['img'] = $path;
                    Redis::hset('book',"books",json_encode($data));
                    $res = $fileModel->upload($data);

                    if ($res){
                        return "<script>alert('提交成功');location.href='page';</script>";
                    }else{
                        return "<script>alert('提交失败');location.href='file';</script>";
                    }
                }
            }
        }
    }

    //首页展示
    public function page(Request $request,FileModel $fileModel){
        $res = $fileModel->page();
//        dump($res);die;
        return view('page',['res'=>$res]);
    }
    //图片展示
    public function pageImg(Request $request){
        $id = $request['id'];
        $data = FileModel::find($id);
        $img = $data['img'];
        return response()->file($img);
    }
    //图片下载
    public function down(Request $request){
        $id = $request['id'];
        $data = FileModel::find($id);
        $img = $data['img'];
        return response()->download($img,$id.'.jpg');
    }
}

 

posted on 2020-10-08 12:06  堇力  阅读(84)  评论(0)    收藏  举报

导航