php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > thinkphp6框架 >

上传规则

时间:2018-09-28 16:25来源:未知 作者:admin 点击:
默认情况下,会在上传目录下面生成以当前日期为子目录,以微秒时间的md5编码为文件名的文件,例如上面生成的文件名可能是: /home/www/uploads/20160510/42a79759f284b767dfcb2a0197904287.jpg 我们
默认情况下,会在上传目录下面生成以当前日期为子目录,以微秒时间的md5编码为文件名的文件,例如上面生成的文件名可能是:
 
/home/www/uploads/20160510/42a79759f284b767dfcb2a0197904287.jpg
我们可以指定上传文件的命名规则,使用rule方法即可,例如:
 
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 移动到服务器的上传目录 并且使用md5规则
$file->rule('md5')->move('../uploads/');
最终生成的文件名类似于:
 
application/uploads/72/ef580909368d824e899f77c7c98388.jpg
系统默认提供了几种上传命名规则,包括:
 
规则 描述
date 根据日期和微秒数生成
md5 对文件使用md5_file散列生成
sha1 对文件使用sha1_file散列生成
其中md5和sha1规则会自动以散列值的前两个字符作为子目录,后面的散列值作为文件名。
 
如果需要使用自定义命名规则,可以在rule方法中传入函数或者方法,例如:
 
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 移动到服务器的上传目录 并且使用uniqid规则
$file->rule('uniqid')->move('../uploads/');
生成的文件名类似于:
 
application/uploads/573d3b6d7abe2.jpg
如果你希望保留原文件名称,可以使用:
 
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 移动到服务器的上传目录 并且使用原文件名
$file->move('../uploads/','');
默认情况下,会覆盖服务器上传目录下的同名文件,如果不希望覆盖,可以使用:
 
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 移动到服务器的上传目录 并且设置不覆盖
$file->move('../uploads/',true,false);
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐
  • 获取文件hash散列值
  • 可以获取上传文件的哈希散列值,例如: // 获取表单上传文件 $file = request()-

  • 上传验证
  • 支持对上传文件的验证,包括文件大小、文件类型和后缀: public function upload

  • 多文件上传
  • 如果你使用的是多文件上传表单,例如: form action=/index/index/upload enctype=multip

  • 单文件上传
  • 假设表单代码如下: form action=/index/index/upload enctype=multipart/form-data method=post i

  • thinkphp5路由定义
  • 注册路由规则 route目录下的任何路由定义文件都是有效的,默认的路由定义文件

猜你喜欢