今天呢学习君在学习的过程中给大家带来了laravel5框架的文件上传 , 希望能和大家共同学习共同进步!
首先呢 大家先明白 计算机中文件上传呢需要哪些参数
1.原文件临时存储绝对路径
2.原文件类型
3.原文件名
4.文件拓展名
等等
在上面列出的一些呢 原文件临时存储绝对路径,文件拓展名是必须要的
知道这些基本常识呢 就开始在laravel5中进行文件上传啦
首先 打开config/filesystem.php 配置文件
找到
'public' => [ //磁盘 'driver' => 'local', //驱动 'root' => storage_path('app/public'), //文件存储路径 storage_path() 指storage目录 'visibility' => 'public', ],
这就是我们文件上传需要的配置文件
我们可以复制一个 命名一个新的磁盘
修改好配置文件准备工作就ok了
view层html页面和普通的文件上传一样 记住不要忘记在form表单标签中写 empty="multipart/form-data"
控制器层
if($request->isMethod('POST')){ //判断是否是POST传值 $file = $request->file('myFile'); //接文件 //文件是否上传成功 if($file->isValid()){ //判断文件是否上传成功 $originalName = $file->getClientOriginalName(); //源文件名 $ext = $file->getClientOriginalExtension(); //文件拓展名 $type = $file->getClientMimeType(); //文件类型 $realPath = $file->getRealPath(); //临时文件的绝对路径 $fileName = date('Y-m-d-H-i-s').'-'.uniqid().'.'.$ext; //新文件名 $bool = Storage::disk('upload')->put($fileName,file_get_contents($realPath)); //传成功返回bool值 } }
ok文件上传结束 laravel5框架内置很多基类都可以很方便的进行一些操作 共同学习 谢谢!
学习君在学习的过程中遇到了一些错误 在这里给大家分享下
TokenMismatchException in VerifyCsrfToken.php line 67: 文件上传提交表单的时候报错
这个原因呢是因为laravel框架自带防csrf攻击
需要把CSRF token禁用掉
方法一:
在form表单加上{{ csrf_field() }}就可以了这段代码的会默认创建一个隐藏域<input type="hidden" name="_token" value="{{csrf_token() }}">方法二 方法三 需要大家自己去学习