【问题标题】:CodeIgniter: Allowed memory exhaustedCodeIgniter:允许内存耗尽
【发布时间】:2013-02-05 06:23:01
【问题描述】:

我在 CodeIgniter 工作。我想要做的是读取 Excel 文件并保存到数据库。要读取 Excel 文件,我使用的是this library。上传后,在读取 Excel 文件时,出现此错误:

致命错误:第 430 行 /home/webscwi1/public_html/projects/OnlineExam/application/libraries/excel_reader.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 71 字节)

无论如何,我可以将内存大小从 12Mb 更改为 512Mb,但我仍然遇到同样的错误。我不知道确切的错误是什么,我想知道这是服务器错误还是代码问题。

附加信息:如果我上传 15 行的文件,它工作正常,但如果我在 Excel 中上传 90 行,我会收到此错误:

 $this->load->library('excel_reader');
 $this->excel_reader->read('question/'.$filename);
 $worksheet = $this->excel_reader->worksheets[0];

谢谢大家。

【问题讨论】:

  • 您正在阅读的文件有多大?即使是较小的文件也会发生这种情况吗?你在使用循环吗?您应该提供更多信息...
  • 感谢回复,文件大小只有64kb
  • 请查看excel库。我在 excel 库中遇到错误。 github.com/EllisLab/CodeIgniter/wiki/Excel-Reader-Class
  • 上传后,我只是调用库来读取文件
  • 不,谢谢,我不会为了帮助您解决一个模糊的问题而调试整个第三方库;我浏览了提交的问题,没有看到任何关于内存不足的问题,您调用库的方式、代码或文件中肯定有一些问题。您可以尝试询问开发人员,或提交一个问题报告,但要使用一个测试用例来说明问题发生的方式和时间

标签: php codeigniter


【解决方案1】:

你应该增加你的内存限制:

  • 编辑你的 php.ini 文件

    memory_limit = 512M

  • 在脚本顶部包含这一行

    ini_set("memory_limit","512M");

您还应该检查这些行是否在您的 .htaccess 中:

php_value memory_limit <value>
php_value upload_max_filesize <value>

它们的值会覆盖 php 配置。所以它们应该反映你的需求,或者干脆被删除。

【讨论】:

    【解决方案2】:

    你应该在你的文件NameOfProject/.htaccess上添加属性php_value

    <IfModule mod_rewrite.c> php_value memory_limit 256M </IfModule>

    【讨论】:

      【解决方案3】:

      这个内存溢出可以是上次查询的自动保存,你可以$this-&gt;db-&gt;save_queries = false;或者在文件config/database.php中更改为'save_queries' =&gt; FALSE,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-02
        • 2012-08-19
        • 2020-06-25
        • 2014-04-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多