Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我需要CodeIgniter错误时获取PHP错误_Php_Codeigniter - Fatal编程技术网

当我需要CodeIgniter错误时获取PHP错误

当我需要CodeIgniter错误时获取PHP错误,php,codeigniter,Php,Codeigniter,尝试上载过大的文件时,我遇到以下PHP错误: POST内容长度为1034425027字节,超出了未知中33554432字节的限制 但我的控制器中有以下设置: $config['max_size']='10000' 我看到的所有解决方案都涉及增加post_max_size等…但我不想允许上传更大的文件-我想要一个错误,只是CI错误,而不是我无能为力的PHP错误 有什么想法吗?这只是PHP中的一个缺陷吗?我不希望将ajax中的“false”返回作为文件上传错误处理,因为从技术上讲,这可能是由任何服务

尝试上载过大的文件时,我遇到以下PHP错误:

POST内容长度为1034425027字节,超出了未知中33554432字节的限制

但我的控制器中有以下设置:

$config['max_size']='10000'

我看到的所有解决方案都涉及增加
post_max_size
等…但我不想允许上传更大的文件-我想要一个错误,只是CI错误,而不是我无能为力的PHP错误

有什么想法吗?这只是PHP中的一个缺陷吗?我不希望将ajax中的“false”返回作为文件上传错误处理,因为从技术上讲,这可能是由任何服务器错误产生的

编辑;澄清一下,由于我收到的代码请求无法解释任何事情(我只能假设这个问题被误解了):


如果文件的大小介于10mb(CI设置的限制)和32mb(post_max_size设置的限制)之间,则一切正常-没有代码问题。但是,如果文件大于32mb,PHP会在CI解析文件并向我提供正确错误之前捕获该文件,因此我没有机会正确标记大型文件,除非我将post_max_size设置为无限大,这似乎既危险又有缺陷。我想知道是否有办法解决这个问题。理想情况下,在CI验证之前,我不需要服务器参与,因为我宁愿标记一个用户友好的错误,也不希望帖子死掉。

首先在php.ini中增加大小,即上传最大大小。默认情况下,PHP代码将读取PHP设置,然后是codeigniter设置。因此,请从.ini文件中增加大小。

最好的办法是在尝试上载之前使用js[1]检查文件大小。除此之外,唯一的选择是增加帖子大小或创建自己的错误处理程序[2]

[1]


[2] /

为什么不尝试在php中增加大小,因为我不希望用户能够上传更大的文件?除非我能将其设置为“无限”,否则无法解决问题。请出示您的上传代码。嗨,塞纳,我不确定我能向您展示什么有意义。这是一个通过ajax运行的标准CI上传。问题是ajax只是得到了一个“false”返回,因为PHP在上传代码运行之前就产生了一个错误。因此,我无法获得“max_size”错误,因为用户总是可以尝试上载一个大于post_max_size的文件(不管设置为什么,用户总是可以尝试上载一个大文件)。您可以显示您正在正确加载配置以及其他内容。我不明白为什么人们拒绝显示他们需要帮助的代码…所以CI设置中的最大文件大小是没有意义的?我可以将max_post_大小设置为1TB,但是有人仍然可以尝试上传一个1.1TB的文件-我没有工具向他们提供一个错误,PHP只是失败了。这似乎不对。@nathan CI设置也很重要。PHP设置在所有项目中都是全局的。但CI设置将仅适用于特定于CI的项目。如果您尝试上载超过PHP大小的内容,则它将失败,并且上载将不成功。不要混淆CI和PHP设置。只需根据您的需求在PHP和CI中定义最大大小。我想您没有领会我的意思。我理解这些事情——但是如果用户试图上传大于post_max_size设置的内容,CI设置就会变得多余。”只有在一台机器上运行多个服务时,逐项目设置才相关——这是一种特定的场景。我不介意上传不能成功,我不希望它成功,我只是希望能够处理错误-这是不可能的,如果用户试图上传大于post max大小的内容,因为服务器刚刚倒下。在我看来,这是个糟糕的设计。澄清一下,在我看来,顺序应该颠倒过来。让代码(前端和后端)处理事情,直到需要最终检查为止。如果Ci设置为10mb,post_max_size设置为32mb,并且用户尝试上载40mb的文件,则应在服务器限制发挥作用之前给予Ci处理该错误的机会,这在我看来应该是最后一次检查。当然,这是不可能的,但我希望以某种方式绕过该漏洞。增加post_max_size并不能解决这个问题,除非它被设置为
infinite
——这使得它变得多余。啊,我甚至没有想过先检查JS(反正我正在运行ajax,所以这是一个很好的选择)。我至少可以检查大于最大post大小的文件,并让CI处理其余的文件。谢谢