2017-03-28 10:27:33 2540次浏览 2条回答 1 悬赏 15 金钱

我按照 http://www.yiichina.com/doc/guide/2.0/input-file-upload 写了一个文件上传,其中上传文件的扩展名定义为:

 public function rules()
    {
        return [
            [['imageFile'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png,jpg,xls,xlsx,doc,txt,ppt,pptx,rar,docx'],
        ];
    }

应该可以上传rar文件,上传其它类型的文件都正常,上传不是指定类型的文件客户端都报错,但是上传rar文件时,客户端不报错,但是服务器端验证不能通过,调用 “var_dump($this->errors);exit(0);”,显示“array(1) { ["imageFile"]=> array(1) { [0]=> string(102) "只允许使用以下文件扩展名的文件:png, jpg, xls, xlsx, doc, txt, ppt, pptx, rar, docx。" } } ”

补充于 2017-03-28 13:56

我知道了,checkExtensionByMimeType设置为false就行啦,它默认设置为true

  • 回答于 2017-03-28 12:38 举报

    try 一下 .png 是否可以,然后试下 从rules里移除 .png 是否有效 ,慢慢debug吧。

  • 回答于 2017-03-30 10:51 举报

    。。你修改checkExtensionByMimeType为false能行,那说明你上传的那个所谓后缀名为rar的文件压根就不是rar类型的

    3 条回复
    回复于 2017-03-30 11:19 回复

    是rar类型,可以解压

    回复于 2017-03-31 09:21 回复

    可以解压就是rar?我把我的zip后缀改成rar也可以解压。算了,不说了,不在一个频道。

    回复于 2018-01-18 14:01 回复

    设置为false也不能提交,直接报,提交的数据无法通过验证,设置的允许上传的有rar,exe,zip等,结果上传rar和exe都提示数据无法通过验证,zip的部分能上传,部分上传不了,麻烦问一下怎么解决,谢谢

您需要登录后才可以回答。登录 | 立即注册
zq
主管

zq

注册时间:2017-02-09
最后登录:2022-12-08
在线时长:13小时59分
  • 粉丝3
  • 金钱320
  • 威望10
  • 积分550

热门问题