视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
laravel系统自带的文件上传功能
2020-11-02 18:14:00 责编:小采
文档


下面由Laravel教程栏目给大家介绍laravel系统自带的文件上传功能 ,希望对需要的朋友有所帮助!

对于上传文件这个功能,说难吧,其实都是封装好的,真的不难。说不难吧,各种配置什么的有时候真的也会让人头疼。今天呢,就说一下关于laravel的上传功能的介绍。

直接调用命令从composer上下载了一份laravel的框架,命名为blog(这个随便)

进入文件blog->config->filesystems.php,其中有一个disk的配置。


简单的解释一下

  • disk配置项的总调用,在后面会用到的。可以把它当做一个public的调用方法这样就很好理解了
  • local代表的是其中的一个小的配置项,因为或许一个项目中,要有很多不同的存储方式或者存储位置,local,public,s3都是表示不同的存储方式。
  • driver表示的是存储位置,像local表示的就是存储在本地项目中。s3是存储在亚马逊的磁盘位置,或许还有很多,到时候我们就可以按照这三个的demo模式继续的创建
  • 因为一般都是存储在项目本身,所以我们下面去掉s3的解释。
  • root表示的是文件存储的位置。‘app/public’表示的就是文件存储在blog->storage->app->public下面。‘’app/public‘’是可以随意的改变的。
  • 正常的就像local的两个配置就可以了。
  • 配置完之后呢就到了代码块了。代码块就相当简单了。

    1. 创建路由,路由自己定义就好了(这个就不用解释了吧)
    2. 编写和路由对应的方法,在方法里面开始编写代码。

    前端代码

    <p class="container">
     <p class="panel-heading">上传文件</p>
     <form class="form-horizontal" method="POST" action="" enctype="multipart/form-data">
     {{ csrf_field() }} 
     <label for="file">选择文件</label>
     <input id="file" type="file" class="form-control" name="source" required> 
     <button type="submit" class="btn btn-primary">确定</button>
     </form>
    </p>

    红色部分代码是必须加上的,如果不加上的话,下面的php语句中的代码验证就无法实现

    后端代码

    3

    public function upload(Request $request){
     	if ($request->isMethod('POST')) { //判断是否是POST上传,应该不会有人用get吧,恩,不会的
    
     	//在源生的php代码中是使用$_FILE来查看上传文件的属性
     	//但是在laravel里面有更好的封装好的方法,就是下面这个
     	//显示的属性更多
     	$fileCharater = $request->file('source');
    
     	if ($fileCharater->isValid()) { //括号里面的是必须加的哦
     	//如果括号里面的不加上的话,下面的方法也无法调用的
    
     	//获取文件的扩展名 
     	$ext = $fileCharater->getClientOriginalExtension();
    
     	//获取文件的绝对路径
     	$path = $fileCharater->getRealPath();
    
     	//定义文件名
     	$filename = date('Y-m-d-h-i-s').'.'.$ext;
    
     	//存储文件。disk里面的public。总的来说,就是调用disk模块里的public配置
     	Storage::disk('public')->put($filename, file_get_contents($path));
     	}
     	}
     	return view('upload');
     }

    小编是一边弄一边打,生怕自己写错了给你们笑话。最后成功的上传了文件进去。

    下载本文
    显示全文
    专题