【问题标题】:Problem in uploading files in Codeigniter在 Codeigniter 中上传文件的问题
【发布时间】:2021-08-27 11:46:58
【问题描述】:

我正在尝试在 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 代码的开头。

我相信这是因为在 codeigniter 限制可以正常工作和重定向之前,php 大小限制首先被触发。我该如何解决?

附:

  1. 我不想上传那个文件。我想要那个错误。但我想正确捕获错误并重定向到其他页面,而不是通过 html 发布。我已经在 Codeigniter 中编写了这部分代码,但我相信在执行该部分代码之前会引发此错误。
  2. 当文件大小高于 Codeigniter 限制但小于 PHP 限制时,不会发生此错误。然后错误被 Codeigniter 正确捕获,重定向代码完美运行。

【问题讨论】:

  • 检查 .htaccess 部分:stackoverflow.com/questions/38968599/…
  • 是的。但我的问题是不同的。我不想上传那个文件。我想要那个错误。但我想正确捕获错误并重定向到其他页面,而不是通过 html 发布。我已经在 Codeigniter 中编写了那部分代码,但是我相信在该部分代码执行之前会引发此错误。
  • 您应该使用您的评论编辑您的问题,以更清楚您需要什么

标签: php codeigniter file-upload


【解决方案1】:

我在客户端找到了解决方法:

我需要添加一个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>

这会阻止输入接受任何大于我的 Codeigniter 限制的文件,从而自动避免 PHP 限制(大于 Codeigniter 限制)。

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 2018-01-14
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    相关资源
    最近更新 更多