Laravel 文件上传功能实现

  • 以Laravel 5.2.45 框架为主,进行文件上传功能的实现如下:


    Laravel 文件上传功能实现_第1张图片
    没啥意思 我就是一个封面图而已

1).配置文件修改

  • 打开 config/filesystems.php 文件
  • 在 'disks' 数组中添加如下代码
        //自定义
        'uploads' => [
            'driver' => 'local',
            //'root' => storage_path('app/uploads'),
            'root' => public_path('uploads/'.date('Ymd')),
        ],

2).前端视图 upload.blade.php

  • 根据需求,设计简单的视图,核心代码如下

            
文件上传
{{ csrf_field() }}

3).控制器核心代码

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
//上传文件 功能实现方法
public function upload(Request $request){
        if ($request->isMethod('POST')){
            $file = $request->file('source');
            //判断文件是否上传成功
            if ($file->isValid()){
                //原文件名
                $originalName = $file->getClientOriginalName();
                //扩展名
                $ext = $file->getClientOriginalExtension();
                //MimeType
                $type = $file->getClientMimeType();
                //临时绝对路径
                $realPath = $file->getRealPath();
                $filename = uniqid().'.'.$ext;
                $bool = Storage::disk('uploads')->put($filename,file_get_contents($realPath));
                //判断是否上传成功
                if($bool){
                    echo 'success';
                }else{
                    echo 'fail';
                }
            }
        }
        return view('upload');
    }

4).执行上述方法结果

  • 通过调用上述方法,正确执行后,上传的文件将出现在 public/uploads 的对应日期目录下
Laravel 文件上传功能实现_第2张图片

你可能感兴趣的:(Laravel 文件上传功能实现)