老莫的笔记本  
  
查看: 1213|回复: 3

TP5 文件上传 小计

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-9-26 23:27:28 | 显示全部楼层 |阅读模式
一:接收上传文件,并存放到指定位置:    1. 引入 Request 的类 ;
    2.接收
  1. $file = $request->file('file');
复制代码
   3.存放到指定位置(注意 会在配置后的文件夹下自动创建日期文件夹)【注意:ROOT_PATH 代表的是public上一级目录,跟域名配置没关系
  1. $info = $file->validate($rules)->move(ROOT_PATH.'public'.DS.'uploads'.DS.'images');
复制代码
(其实这句代码 我已经加了验证,验证规则是 $rules)




参考文献:https://www.jianshu.com/p/5cd73628da9d

参考文献2:https://www.jianshu.com/p/b1622b424886
参考文献3:https://www.kancloud.cn/gogery/wanzhuantp5/359696





回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-9-26 23:28:50 | 显示全部楼层
二:上传文件验证
  1. $rules = [
  2.                 'ext'   =>  'jpg,png,gif'   //上传格式限制
  3.                 ,'size' =>  1024*1024*2    //上传大小限制 这是 2MB
  4.             ];
  5.             $info = $file->validate($rules)->move(ROOT_PATH.'public'.DS.'uploads'.DS.'images');
复制代码
这里需要知道一个点:验证不通过 返回 false , 验证通过 则返回对象;

回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-9-26 23:31:11 | 显示全部楼层
三:获取上传文件的信息
  1. $data = [
  2.                     'ext'   =>   $info->getExtension() , //文件名后缀
  3.                     'savename'   =>   $info->getSaveName(), /// 输出文件的位置以及文件名。系统会自动创件以时间为名的文件夹,然后输出文件夹的名字和图片的名字。
  4.                     'filename'  =>   $info->getFilename(), // 输出文件名【和上一个比 少了一层目录】
  5.                     'info'      =>   $info->getInfo(), // 获取文件上传前的信息 这是一个数组 包含上传原名称
  6.                     'mime'      =>   $info->getMime(), // 获取文件的mime 信息 就是图片类型
  7.                     'md5'       =>   $info->md5(),   // 获取md5 散列值
  8.                     'sha1'      =>   $info->sha1(),  // 获取文件sha1散列值
  9.                   
  10.                 ];
复制代码

回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-9-26 23:42:22 | 显示全部楼层
了解上传文件可配置的命名规则:
date
根据日期和微秒数生成
md5
对文件使用md5_file散列生成
sha1
对文件使用sha1_file散列生成
使用方法:
$file->rule()  传递规则参数
  1.             $info = $file->validate($rules)->rule('sha1')->move(ROOT_PATH.'public'.DS.'uploads'.DS.'images');
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表