Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
使用内存耗尽php://input_Php_Memory_Input_Upload_Limit - Fatal编程技术网

使用内存耗尽php://input

使用内存耗尽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

使用fopen(“php://input)上载120MB文件时,我们会收到php发出的“内存耗尽”警告。php内存限制设置为256MB,我们有足够的可用内存

我们删除了除fopen(“php://input)并且仍在失败,因此错误一定在那里

我们尝试了不同的内存限制,在大约500MB时,错误消失了。不过,我们确实不应该使用500MB,所以问题仍然存在:为什么在115-120MB的文件上使用fopen会出现内存耗尽错误

我们的php测试文件:

<?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');