当使用fopen(“php:// input”)上传120MB文件时,我们会收到来自php的“内存耗尽”警告。 php memory_limit设置为256MB,我们有足够的可用内存。
我们删除了除fopen(“php:// input”)之外的所有代码,但它仍然失败,因此错误必须在那里。
我们尝试了不同的内存限制,大约500MB的错误消失了。尽管如此,我们真的不应该使用500MB,所以问题仍然存在:为什么我们在一个115-120MB大小的文件上使用fopen会出现内存耗尽错误。
我们的php测试文件:
<?php
$inputHandler = fopen('php://input', "r");
?>
错误:
262144000 bytes exhausted (tried to allocate 120829495 bytes)
我希望有人可以帮助我们。这让我们疯了!
提前致谢!
答案 0 :(得分:0)
尝试配置无限内存使用:
ini_set('memory_limit', '-1');
答案 1 :(得分:0)
这可能是因为php试图自动解析POST数据。 要禁用此功能,在php版本5.4+中,您可以将enable_post_data_reading设置为0.(为此,我使用了.htaccess) 但实际上,在php 5.4+中,最好使用$ _FILES进行上传...