File upload PHP致命错误:内存不足(已分配80740352)(尝试分配12352字节)

File upload PHP致命错误:内存不足(已分配80740352)(尝试分配12352字节),file-upload,php,File Upload,Php,当用户在我的网站上传图片时,我会遇到这个错误 错误消息是“PHP致命错误:在/home中内存不足(已分配80740352)(试图分配12352字节)。” 如何使用php.ini修复此问题 下面是我当前上传的php.ini设置 upload_max_filesize = 2000M ; post_max_size = 2000M max_file_uploads = 8 你知道我还需要添加什么来解决这个错误吗?从php.ini增加内存限制 memory_limit = ... 最佳的内存\u

当用户在我的网站上传图片时,我会遇到这个错误

错误消息是“PHP致命错误:在/home中内存不足(已分配80740352)(试图分配12352字节)。” 如何使用php.ini修复此问题

下面是我当前上传的php.ini设置

upload_max_filesize = 2000M ;
post_max_size = 2000M
max_file_uploads = 8

你知道我还需要添加什么来解决这个错误吗?

从php.ini增加内存限制

 memory_limit = ...

最佳的
内存\u限制值取决于您对上载的文件所做的操作。您是使用文件内容还是GD库将文件读入内存?在这种情况下,请将内存限制至少增加到与上载文件大小相同的大小,最好是更多

如果您使用的是GD,请记住GD会将未压缩的整个图像保存在内存中。这意味着它需要
宽度*高度*位深度
范围内的内存,例如,对于屏幕截图,
1024*768*32=25 165 824位=3 MB
,对于1400万像素的图像,需要55 MB的内存


有些操作可能需要创建图像的副本,所以考虑将MeimyLyBuffic设置为需要将图像保存在内存中的两倍。如果不需要,也要确保不要一次将所有图像加载到内存中。处理完图像后,您可以通过调用句柄释放GD使用的内存。

上载的文件保存在内存中,因此您还应该增加至少与预期文件相同大小的内存

memory_limit = 2000M // better 2200M or above, just in case.

到脚本的顶部。相应地改变20000M

无论它在做什么,都是你的脚本消耗了太多的内存,而不是上传本身!如果用户一次上传6个1MB图像,可能会重复任何关于值的建议?我的默认值是128Mb,我认为这不会导致问题,但您可能需要尝试。尝试上载6个2MB图像,然后增加该值,直到不会出现任何错误。还要确保您的用户不会上传超过10MB的原始图像,我建议您减少最大上传大小。
set_time_limit(0);
ini_set('memory_limit', '20000M');