我正试图在Codeigniter 3.1.11中编写一个文件上传模块。的最大文件大小已设置为20Mb
$config['max_size'] = 20480;
PHP上传限制为40Mb。
但是,当我运行它并试图上传一个重文件时,它没有正确重定向,并使用加载相同的表单
<br />
<b>Warning</b>: POST Content-Length of 368347418 bytes exceeds the limit of 41943040 bytes in <b>Unknown</b> on line <b>0</b><br />
<!DOCTYPE html>
<html lang="en" class="h-100">
在Html代码的开头。
我相信这是因为在代码点火器限制能够正常工作和重定向之前,php大小限制首先被触发。我该如何解决此问题?
第页。S.:
- 我不想上传那个文件。我想要那个错误。但我想正确地捕捉错误并重定向到其他页面,而不是通过html发布。我已经在Codeigniter中编写了这部分代码,但我相信这个错误是在这部分代码执行之前抛出的
- 当文件大小高于Codeigniter限制但小于PHP限制时,不会发生此错误。然后,Codeigniter正确地捕捉到错误,重定向代码工作得很好
我在客户端找到了一个解决方法:
我需要添加一个JS脚本:
<script>
var uploadField = document.getElementById("file");
uploadField.onchange = function() {
if(this.files[0].size > 20971520){
alert("File is too big! Maximum limit is 20Mb");
this.value = "";
};
};
</script>
这将停止输入以接受任何大于我的Codeigner限制的文件,这将自动避免PHP限制(大于Codeigner的限制(。