使用内存耗尽php://input
使用fopen(“php://input)上载120MB文件时,我们会收到php发出的“内存耗尽”警告。php内存限制设置为256MB,我们有足够的可用内存 我们删除了除fopen(“php://input)并且仍在失败,因此错误一定在那里 我们尝试了不同的内存限制,在大约500MB时,错误消失了。不过,我们确实不应该使用500MB,所以问题仍然存在:为什么在115-120MB的文件上使用fopen会出现内存耗尽错误 我们的php测试文件:使用内存耗尽php://input,php,memory,input,upload,limit,Php,Memory,Input,Upload,Limit,使用fopen(“php://input)上载120MB文件时,我们会收到php发出的“内存耗尽”警告。php内存限制设置为256MB,我们有足够的可用内存 我们删除了除fopen(“php://input)并且仍在失败,因此错误一定在那里 我们尝试了不同的内存限制,在大约500MB时,错误消失了。不过,我们确实不应该使用500MB,所以问题仍然存在:为什么在115-120MB的文件上使用fopen会出现内存耗尽错误 我们的php测试文件: <?php $inputHandler
<?php
$inputHandler = fopen('php://input', "r");
?>
我希望有人能帮助我们。这快把我们逼疯了
提前谢谢 尝试配置为无限内存使用:
ini_set('memory_limit', '-1');
这可能是因为php试图自动解析POST数据。 要禁用此功能,在PHPVersion5.4+中,可以将enable_post_data_reading设置为0。(我为此使用了.htaccess)
但是,实际上,在PHP5.4+中,最好使用$\u文件进行上传…只有在从$INPUTHANDLER读取时,才不应该在fopen()上出现错误。fopen处理程序并不是唯一使用php内存的东西。使用
memory\u get\u usage()
查看已经使用了多少内存,然后再尝试将这个巨大的文件加载到内存中。@MarkBaker我们也这么认为,但这是唯一一行代码,它正在崩溃。当我们观察httpd进程时,我们可以看到上传文件时内存在增加,但它永远不会超过130MB。@aynber每个正在执行的php脚本都会得到内存限制地址。所以我使用的脚本应该有256MB的内存use@MarkVisser我有这个问题。你能解决这个问题吗?别无选择。我们不应该使用超过256MB的内存
ini_set('memory_limit', '-1');