首页 PHP后端 TP6容易踩得坑【原创】
TP6容易踩得坑【原创】
作者 : tanyi 来源 : 我的笔记 浏览 : 220 次 时间 : 2021-01-22 17:45:26
简述
这几天准备把网站的框架从tp5换成tp6,过程中遇到很多小坑,文件上传就是其中之一

首先tp6文件上传相对于tp5在实现过程来说区别还是比较大,所以想偷懒没成功。

如果原来的代码是类似这种方法上传,那么还是可以接着用,基本不用改。

$file = request()->file('pic');
$info = $file->move($path,'文件名');

主要是在上传验证的时候区别较大。tp5文件对象就有验证方法,而tp6统一采用的是验证器验证,所以以前类似这种写法在tp6不适用。

$file->validate(['size'=>500000,'ext'=>'jpg,png,gif'])->move($path);

下面放一段tp6官方手册的文件上传验证代码。

public function upload(){
    // 获取表单上传文件
    $files = request()->file();
    try {
        validate(['image'=>'filesize:10240|fileExt:jpg|image:200,200,jpg'])
            ->check($files);
        $savename = [];
        foreach($files as $file) {
            $savename[] = \think\facade\Filesystem::putFile( 'topic', $file);
        }
    } catch (\think\exception\ValidateException $e) {
        echo $e->getMessage();
    }}

我复制这段内容测试过没有作用,如果你也是复制过去,那么请求的结果会看到一直提示:image规则错误,最后追踪代码发现是filesize在验证器里面的验证方法名是fileSize,而且正是因为这个也导致在最终返回错误提示时本应该返回对应的错误信息但是类里面的默认规则提示数组($this->typeMsg)找不到filesize对应的值,所以直接跳到最后提示规则错误。

1611308552470384.png

所以把filesize改成fileSize就可以了。有朋友可能不习惯用try catch写法,这里放一下我自己写的。

  $file = request()->file('文件域字段名');
  $v=\validate(['文件域字段名'=>'fileSize:500000|fileExt:jpg,png,gif'])->failException(false);
  if($v->check(['文件域字段名'=>$file])){
    $name=Filesystem::putFile($path,$file);
    echo $name
  }else{
    echo $v->getError();
  }

助手函数input默认是没有任何过滤设置的,所以在使用input获取客户端传过来的数据时需要手动设置input的第三个参数(过滤数据的方法),可以在app\Request对象中设置filter全局过滤属性,app目录下Request文件,而不是在应用配置文件设置,这点跟以前的版本有区别。

namespace app;
class Request extends \think\Request{
    protected $filter = ['htmlspecialchars'];
}



上一篇: 关于企业微信开发的一些小记【原创】

下一篇: php跨域上传文件
版权声明:原创文章,转载时请注明原始出处,作者等相关信息。
本文连接:https://ntbk8.cn/index/d-121.html
留言
上传图片
评论列表

110 篇

文章总数

66178 次

浏览总数

96 条

评论总数

昵称 Telkobe
职业 PHP开发
家乡 四川南充
住址 暂居成都
QQ 946188985
文章搜索
热门文章
最新文章
新闻头条

1 最深水位及腰,三亚一村庄内涝 被困群众被成功转移

2 最具影响力!海淀融媒又双叒叕上榜啦!

3 厨房煤气泄漏,用打火机测试?这个口诀要记牢

4 济南诚基中心四期迎来改造,曾经无奈的居民“看到希望”

5 杨笠工作室声明:杨笠只是受邀参加某时尚媒体活动,与奔驰无任何商业合作

6 本想在网络找个兼职,结果被骗近八万

7 语文最需要共情,他把课讲到学生心坎上

8 80后女教师扎根乡村10年 逛街看电影成了“奢侈品”

9 上天入地、飞檐走壁……消防“蜘蛛侠”大片来袭!

10 奥运冠军乐靖宜、罗雪娟、焦刘洋沪上同框,她们要复出了?

11 这座县域隶属扬州,处于江苏中部地理位置优越,为何说发展不好?

12 瓦后Wahou属于什么档次?是奢侈品吗?

13 新洲最美教师24年如一日扎根乡村教育,走教一年多来奔波数百公里

14 网红直播喝农药身亡,这些“帮凶”该当何罪?

15 最新!牵动全网人心的这位杭州刑警又有好消息

16 德州一拉面馆搬迁,老板贷款退会员储值金!本人回应:已退15万元,退款还在继续

17 四旬男子不满父亲喊他吃饭,竟持刀将其砍伤,涉故意杀人罪被起诉

18 挥拍魔都, 2021 澳网中国业余挑战赛上海站精彩收官!

19 “液态——2021上海当代艺术展”展出,看艺术家如何诠释“液态”?

20 秀出未来可期的艺术新面貌,2021上海青年艺术博览会下月启幕

21 上海江南民歌大赛颁奖展演在青浦朱家角古镇举行

22 不颁一分钱的“上海好童书”颁出 张文宏主编《病菌简史》获特别奖

23 粤剧《白蛇传·情》昨晚在宛平剧院开演

24 福州一在建摩天轮垮塌

25 中国书坛新人新作展览在新洲面试考核

26 海南省少儿民歌文化季圆满落幕 小小“红心”唱响椰城

27 突发!福州一在建摩天轮疑似意外倒塌

28 老常“还钱”记

29 【践行重要训词精神】十元打底“炸金花”,11人聚众赌博被罚

30 天天315丨这两批次的被子抽检不合格 抵抗外力能力较差易破裂

历史上的今天

1 在113年前的今天,1908年10月19日 (农历九月廿五),日本政府封禁《民报》。

2 在101年前的今天,1920年10月19日 (农历九月初八),苏联英雄约翰·里德英年早逝。

3 在89年前的今天,1932年10月19日 (农历九月二十),右江根据地创建人之一韦拔群被暗害。

4 在86年前的今天,1935年10月19日 (农历九月廿二),中共中央和红一方面军到达陕北。

5 在85年前的今天,1936年10月19日 (农历九月初五),鲁迅在上海病逝。

6 在84年前的今天,1937年10月19日 (农历九月十六),英国物理学家卢瑟福逝世。

7 在78年前的今天,1943年10月19日 (农历九月廿一),《解放日报》发表《在延安文艺座谈会上的讲话》。

8 1949年10月19日 (农历八月廿八),中央人民政府组成。

9 1950年10月19日 (农历九月初九),抗美援朝,志愿军跨过鸭绿江赴朝鲜前线。

10 1956年10月19日 (农历九月十六),波兰政治家哥穆尔卡复出。

11 1965年10月19日 (农历九月廿五),中国尼泊尔正式直接通邮。

12 1978年10月19日 (农历九月十八),卡尔波夫击败克切诺依蝉联世界象棋冠军。

13 1986年10月19日 (农历九月十六),莫桑比克总统座机坠毁 萨莫拉不幸身亡。

14 1987年10月19日 (农历八月廿七),黑色星期一世界股市狂跌。

15 1989年10月19日 (农历九月二十),苏联最新式的航空母舰下水。

16 1995年10月19日 (农历闰八月廿五),北约秘书长克拉斯辞职。

17 1995年10月19日 (农历闰八月廿五),卢泰愚丑闻震惊韩国。

18 1996年10月19日 (农历九月初八),我国第一艘热气飞艇首飞成功。

19 1998年10月19日 (农历八月廿九),格鲁吉亚军人哗变。

20 1998年10月19日 (农历八月廿九),人类首次徒步穿越世界最大峡谷。

21 1998年10月19日 (农历八月廿九),微软公司迎战美国政府。

22 2001年10月19日 (农历九月初三),著名指挥家李德伦逝世。

23 2001年10月19日 (农历九月初三),江泽民与布什首次会晤。

24 2007年10月19日 (农历九月初九),欧盟通过《里斯本条约》 制宪危机有所化解。

25 2007年10月19日 (农历九月初九),全球气候变化举世关注 “巴厘岛路线图”艰难出台。

26 2007年10月19日 (农历九月初九),东盟签署《东盟宪章》 一体化进程加速推进。

27 2007年10月19日 (农历九月初九),多种因素交互作用 国际油价持续高位震荡。

28 2007年10月19日 (农历九月初九),中东和会在美举行 巴以和平进程艰难重启。

29 2010年10月19日 (农历九月十二),“国际制造创新节”首设“蔡伦奖”。

百度统计 站长统计

©2018-2021 www.ntbk8.cn. All rights reserved.  蜀ICP备18006425号

友情链接:  若岚博客  vipbic  快云vps  聚宝盆  飞之梦工作室  7分钟课堂  提交友链