laravel5 文件上传

尹承业
2023-12-01

今天呢学习君在学习的过程中给大家带来了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() }}">
方法二 方法三  需要大家自己去学习

  
  
 


 类似资料: