Route::prefix('book')->group(function () {
route::get('index','Book\BookController@add');
route::post('doadd','Book\BookController@doadd');
});
新建控制器 完成书籍相关操作
BookController 内容
<?php
namespace App\Http\Controllers\Book;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Illuminate\Support\Facades\Storage;
class BookController extends Controller
{
/*
* @content 书籍添加
* @params $data array 书籍的分类
* */
public function add()
{
$data = DB::table('category')->get();
return view('book.add',['data'=>$data]);
}
/*
* @content 书籍添加执行操作
* @params $request
* */
public function doadd(Request $request)
{
//接收全部数据
$data = $request->all();
//去掉csrftoken
unset($data['_token']);
//文件上传操作
$file = $request->file('image');
//定义允许上传的文件类型
$allow = ['jpg','png','gif'];
if ($request->hasFile('image') && $file->isValid()) {
//获取文件的后缀名
$ext = $file->getClientOriginalExtension();
if(in_array($ext,$allow)){
//获取当前文件的位置
$path = $file->getRealPath();
//echo $path;die;
//生成新文件的文件名
$newfilename = date("Ymd")."/".$request->book_name.mt_rand(100,999).'.'.$ext;
//$dirpath = ".\\uploads\\".date("ymd");
//$file->move($dirpath,$newfilename);
// echo storage_path();die;
$data['image'] = $newfilename;
$re = Storage::disk('uploads')->put($newfilename, file_get_contents($path));
if($re){
//完成入库操作
DB::table('book')->insert($data);
}else{
exit("上传失败,请重新上传");
}
}else{
exit("文件类型不合法,请重新检查");
}
}else{
exit("上传文件错误,请重新检查");
}
}
}
以上操作可以完成文件上传和使用DB实现数据入库的操作