热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

yii2上传文件失败

yii2上传文件失败的解决方法是:添加取消验证代码即可,如【if($action->iddatafile){$this->enableCsrfValidationfalse;】。

我们先来看一下代码:

首先看一下View部分:

" method="post" enctype="multipart/form-data">
    
    
    

上面的action是用YII的助手类构建了一个内部可以识别的url,就是DeaufaultController.php中的actionDatafile()

(推荐教程:yii框架)

 public function actionDatafile(){
        if(empty($_FILES)){
            $status = 1;
            $info = '没有文件上传';
        }
        if($_FILES['myFile']['error'] === 0 || $_FILES['myFile']['error'] === '0' ){
            //文件上传成功
            $tmp = pathinfo($_FILES['myFile']['name']);
            $new_fname = $tmp['filename'].'_'.rand(1000000,9999999).'.'.$tmp['extension'];
            echo $new_fname;
            if(!move_uploaded_file($_FILES['myFile']['tmp_name'], '../runtime/file/'.$new_fname)){
                $status = 1;
                $info = '上传(移动)失败';
            }else{
                $status = 0;
                $info = '上传成功';
            }
        } else {
            //文件上传失败
            $info = '文件上传失败';
            switch($_FILES['myFile']['error']){
                case 1:
                    $info = '上传文件超过php.ini中upload_max_filesize配置参数';
                    break;
                case 2:
                    $info = '上传文件超过表单MAX_FILE_SIZE选项指定的值';
                    break;
                case 3:
                    $info = '文件只有部份被上传';
                    break;
                case 4:
                    $info = '没有文件被上传';
                    break;
                case 5:
                    $info = '上传文件大小为0';
                    break;
            }
            $status = 1;
        }
        return $info;
    }

执行后发现

解决方法:

1、检查配置(php.ini)

file_uploads、upload_max_filesize、post_max_size、upload_tmp_dir是否已设置。

2、检查参数

发现参数中的crsf,这个参数是yii框架验证所带,提及验证,便和错误提示相仿,添加取消验证代码,如下:

public function beforeAction($action)
    {
        if ($action->id == 'datafile') {
            $this->enableCsrfValidation = false;
        }
 
        return parent::beforeAction($action);
    }

更多编程相关内容,请关注编程入门栏目!

以上就是yii2上传文件失败的详细内容,更多请关注其它相关文章!


推荐阅读
  • laravel怎么关闭csrf验证
    php框架|Laravellaravelphp框架-Laravel在线生成php源码,vscode怎么解除注释,ubuntu进入后,tomcat放在哪了,爬虫美图,php打包工具, ... [详细]
  • 最近在准备比赛,打sqlilabs时看了一下sqlmap的wiki,发现了–csrf-token和–csrf-url的参数,于是写了个ph ... [详细]
  • Odoo接口开发
    Odoo接口开发Odoo是通过Controller来(控制器)发相应的接口的,路由是通过装饰有的方法定义的route()先定义一个Controller类在项目的文件夹control ... [详细]
  • 前端跨域访问后端数据的方法
    参考链接:https:mp.weixin.qq.coms4G_27oRLSMMYBFvtYZgqcg一、什么是跨域当两个域名的协议、子域名、主域名、端口号中有任意一个不 ... [详细]
  • v.1.2.beta4Igetthefollowingerrorwhentryingtodeleteauserfromtheadmin ... [详细]
  • 利用HTTP Host header头攻击技术详解
    利用HTTPHostheader头攻击技术详解一般通用web程序是如果想知道网站域名不是一件简单的事情,如果用一个固定的URI来作为域名会有各种麻烦。开发人员一般是 ... [详细]
  • 白帽子讲Web安全读书笔记
    Part1:安全的发展,或者说,黑客的发展黑客是什么?互联网本来是安全的,自从有了研究安全的人之后,互联网就变得不安全了。“root”对黑客的吸引,就像大米对老鼠,美女对色狼的吸引。不想拿到“root ... [详细]
  • 1、AuthenticationManager对象注入IOC@ConfigurationpublicclassS ... [详细]
  • 这座城市多了十只伤心的鸽
    这个作业属于哪个课程2021春软件工程实践|W班(福州大学)这个作业要求在哪里团队第四次作业这个作业的目标设计项目原型、制作项目需求规格说明书团队名称这座城市多了十只伤心的鸽其他参 ... [详细]
  • 深入浅出JWT
    JWT(JSONWEBTOKEN)的组成https:jwt.ioheader(头部)承载两部分信息:声明 ... [详细]
  • HTMLformwithoutCSRFprotectionHTML表单没有CSRF保护CSRF是伪造客户端请求的一种攻击,CSRF的英文全称是CrossSiteRequestFor ... [详细]
  • HDIV简介一个简单又强大的安全框架
    为什么80%的码农都做不了架构师?惯例官方纯英文档:https:hdivsecurity.comtechnical-documentationdo ... [详细]
  • 拿到目标后简单看了下,是一个类似员工管理的东西,用户可以创建group,其他用户可以搜索这个grou ... [详细]
  • 如何防止模拟的http的恶意请求?
    http:www.dewen.ioq5511我有一串URLwww.abc.com?paraxxx在页面中点击按钮后用ajax执行此URL后,后台会执行一些操作 ... [详细]
  • 很多同学对热备,冷备,云备了解不深,我科普一下IT行业各种备份术语。以后别闹笑话了。假设你是一位女性,你有一位男朋友&#x ... [详细]
author-avatar
流寇仏翔_609
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有