我得到一个内存错误:
Fatal error: Out of memory (allocated 67633152) (tried to allocate 19104 bytes)
我做了大量的研究。我试图将php.ini的内存限制增加到256M,并用phpinfo()进行了检查,以验证它是否已经更改。这不起作用。
我的照片是晚上9点60分的大照片,4776便士×2856px分辨率。我知道上传的图像可能会膨胀到大约:4776x2856x3=40M+。但这远远低于256M的内存限制。我甚至尝试过将内存限制设置为10000M。这也不起作用。
我上传了其他运行良好的较小图像,但随后重试了大图像,但没有成功,也没有更改错误消息。
我的下一步是什么?
这是我上传代码的精简版本:
foreach(array_keys($FILES['name']) as $KEY) {
if($FILES['type'][$KEY] === 'image/jpeg') {
$TEMP = imagecreatefromjpeg($FILES['tmp_name'][$KEY]);
} else if($FILES['type'][$KEY] === 'image/png') {
$TEMP = imagecreatefrompng($FILES['tmp_name'][$KEY]);
} else if($FILES['type'][$KEY] === 'image/gif') {
$TEMP = imagecreatefromgif($FILES['tmp_name'][$KEY]);
} else {
die(); }
$HD = $KEY.'.jpeg';
imagejpeg($TEMP, $HD, 100);
imagedestroy($TEMP);
}
这是我的php.ini
输入:
post_max_size = 1024M
upload_max_filesize = 1024M
max_file_uploads = 200
memory_limit = 1024M
max_execution_time = 259200
max_input_time = 259200
session.gc_maxlifetime = 1200
更改内存限制在除我之外的许多情况下都会有所帮助。我只是在我的主机上读到,即使改变内存限制也会反映在phpinfo()中;可能不同的并不是主机施加的真正限制。
由于我们共享主机的资源限制可以为PHP分配比您的最大内存更多的内存包裹使用php.ini文件或memory_limit指令增加PHP的内存可能会导致phpinfo()输出反映但是,服务器不会分配比限制