You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter上传MP4失败:提示文件类型不允许的问题求助

解决MP4上传提示"The filetype you are attempting to upload is not allowed"的问题

先看你给出的var_dump($_FILES)结果,里面的error值是1——这才是问题的核心!这个错误对应PHP的UPLOAD_ERR_INI_SIZE常量,意思是你上传的文件超过了PHP配置层面的大小限制,而不是CodeIgniter的allowed_types配置有问题。

因为文件没被PHP成功接收,所以tmp_name是空字符串,type也为空,CodeIgniter的上传类无法读取到有效文件,才会抛出"文件类型不允许"的错误提示,这其实是个误导性的表象。

接下来你可以按照以下步骤排查和修复:

  • 检查PHP配置中的上传大小限制:
    打开你的php.ini文件,找到以下两个参数:

    • upload_max_filesize:单个上传文件的最大限制,默认可能只有2M或者8M,你需要把它设为比你要上传的MP4文件更大的值(比如你的代码里设了80000KB=80MB,那这里至少设为80M)。
    • post_max_size:整个POST请求的最大大小,这个值必须大于upload_max_filesize(比如设为90M),因为POST请求还可能包含其他表单数据。
  • 检查Web服务器的额外限制:
    如果你用的是Nginx,还要检查nginx.conf或者站点配置文件中的client_max_body_size参数,这个值也要设置得足够大(比如80M或更高),否则Nginx会在PHP处理请求之前就拒绝大文件上传。
    如果你用的是Apache,确认有没有通过LimitRequestBody指令设置请求体大小限制,如果有也要调整到合适的值。

  • 重启服务让配置生效:
    修改完PHP和Web服务器的配置后,一定要重启你的Web服务器(Apache/Nginx)和PHP-FPM(如果使用的话),否则新配置不会生效。

  • 验证配置是否生效:
    可以创建一个phpinfo.php文件,内容如下:

    <?php phpinfo(); ?>
    

    访问这个文件,搜索upload_max_filesize和post_max_size,确认它们的值已经更新为你设置的大小。

当你解决了文件大小限制的问题后,再次上传MP4,此时$_FILES中的error值会变成0,文件能被PHP正常接收,CodeIgniter的上传类就能正确识别MP4的MIME类型(结合你已经配置好的mimes.php),上传就能正常完成了。

内容的提问来源于stack exchange,提问作者Valor_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:58:28