Laravel 文件上传(图片/视频)

本文详细介绍了如何在Laravel框架中实现图片上传功能,包括配置filesystems.php文件以使用本地驱动,以及创建Controller来处理上传请求。文章还展示了如何按日期创建文件夹,并通过Storage facade将文件保存到指定目录。
摘要由CSDN通过智能技术生成

添加:

config/filesystems.php

 'article' => [    #'article'这个名字可以随便起
            'driver' => 'local',
            'root' => public_path(), // public_path 就是public的路径
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

我做的是按日期创建文件夹,可以根据自己需求做,如果不按日期,填写上述的public_path('filename')

Controller:

public function laravelUploadImg(Request $request)
    {
        #判断文件是否是 POST的方式上传
        if ($request->isMethod('POST')) {

            $tmp = $request->file('file');

            $path = '/article'; //public下的article

            #按日期创建文件夹

            #$file_path =  './upload/' . date("Y") . '/' . date("m") . '/' . date("d");          //路径

            #function create_folders($file_path)
            #{

               # return is_dir($file_path) or (create_folders(dirname($file_path)) and mkdir($file_path, 0777));

            #}

            #create_folders($file_path);
            
            
            #结束
            
            //判断文件上传是否有效
            if ($tmp->isValid()) {

                $FileType = $tmp -> getClientOriginalExtension(); #获取文件后缀

                $FilePath = $tmp -> getRealPath(); #获取文件临时存放位置

                $FileName = time() . rand(0000, 9999) . '.' . $FileType; #文件名字

                Storage::disk('article') -> put($FileName, file_get_contents($FilePath)); //存储文件

                #Storage::disk('article') -> put($file_path . '/' . $FileName, file_get_contents($FilePath)); //存储文件

                return response([
                    'code' => '0',
                    'msg' => '',
                    'data' => [
                        'src' => $path  . '/' . $FileName //文件路径,
                    ]
                ]);

            }
        }
    }

上传完就可以在你定义的路径看到视频或者图片!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值