Laravel 文件上传

Posted 小白兔晒黑了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 文件上传相关的知识,希望对你有一定的参考价值。

1 配置文件

configfilesystems.php

复制一个配置

‘public‘ => [
‘driver‘ => ‘local‘,
‘root‘ => storage_path(‘app/public‘),
‘url‘ => env(‘APP_URL‘).‘/storage‘,
‘visibility‘ => ‘public‘,
],
然后配置成如下形式:
 //storage_path 指storage目录
        ‘uploads‘ => [
            ‘driver‘ => ‘local‘,
            ‘root‘ => storage_path(‘app/uploads‘),

        ],

 2 创建路由

Route::any(‘/upload‘,[‘uses‘=>‘StudentController@upload‘]);

3 模板文件

esourcesviewsstudentupload.blade.php

@extends(‘layouts.app‘)
@section(‘content‘)
<div>
    <form method="POST" action="" enctype="multipart/form-data">
        @csrf
        <div >
            <input type="file" name="source" id="file" > 请选择文件
            <button type="submit">
               确认上传
            </button>
        </div>
    </form>
</div>
@endsection

4 控制器

appHttpControllersStudentController.php

public  function  upload(Request $request)
    {
        if ($request->isMethod("POST")){
            //var_dump($_FILES);
            $file = $request->file(‘source‘);
            //判断是否上传成功
            if ($file->isValid()){
                //获取原文件名
                $originalName = $file->getClientOriginalName();
                //获取扩展名
                $ext = $file->getClientOriginalExtension();
                //文件的类型
                $file->getClientMimeType();
                //临时文件的绝对路径
                $realPath = $file->getRealPath();
                //新文件名
                $fileName = date(‘Y-m-d-H-i-s‘).‘-‘.uniqid().‘.‘.$ext;
                $bool = Storage::disk(‘uploads‘)->put($fileName,file_get_contents($realPath));
                if($bool){
                    echo ‘上传成功‘;
                }
            }

        }
        return view(‘student.upload‘);
    }

 

以上是关于Laravel 文件上传的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.0 文件上传验证

Laravel 上传文件到阿里云

Laravel 上传文件到阿里云

laravel特殊功能代码片段集合

如何防止在laravel中上传相同的文件

Laravel 5 Ajax 文件/图像上传