laravel实现文件上传

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值