<?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');
}
}