laravel 实现文件上传

//路由组 路由前缀的方式
Route::prefix(‘student’)->group(function () {
route::get(‘show’,”student\StudentController@show”);
route::post(‘add’,”student\StudentController@add”);
route::any(‘list’,”student\StudentController@listall”);
route::any(‘delete/{id},”student\StudentController@delete”);
route::any(‘update/{id},”student\StudentController@update”);
});

Route::prefix(‘book’)->group(function () {
route::get(‘index’,’Book\BookController@add’);
route::post(‘doadd’,’Book\BookController@doadd’);

});
“`

新建控制器 完成书籍相关操作

BookController 内容

“`
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实现数据入库的操作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值