上载大文件时出现PHP致命错误
我目前正在使用PHP CodeIgniter框架,并且有一个图像上传表单。当我上传小文件时,脚本运行没有任何问题,但是当我选择一个文件(比如3mb)进行上传时,脚本没有运行,转到一个页面并说“页面加载失败”。我检查了php日志和apache日志。PHP日志给出了这个错误上载大文件时出现PHP致命错误,php,codeigniter,file-upload,Php,Codeigniter,File Upload,我目前正在使用PHP CodeIgniter框架,并且有一个图像上传表单。当我上传小文件时,脚本运行没有任何问题,但是当我选择一个文件(比如3mb)进行上传时,脚本没有运行,转到一个页面并说“页面加载失败”。我检查了php日志和apache日志。PHP日志给出了这个错误 PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20736 bytes) in /Users/Deskto
PHP Fatal error:
Allowed memory size of 33554432 bytes exhausted
(tried to allocate 20736 bytes) in
/Users/Desktop/localhost/system/libraries/Image_lib.php on line 1155
我想我必须从CodeIgniter的配置文件中更改一些设置,这是一个真实的假设吗
这是我当前的php.ini,我认为它不会触发失败
; Maximum allowed size for uploaded files.
upload_max_filesize = 32M
; Must be greater than or equal to
upload_max_filesize post_max_size = 32M
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 32M ; Maximum amount of memory a script may consume (8MB)
但是页面没有加载,然后失败。当我单击“提交”时,它无法立即处理
任何提示都将不胜感激,提前感谢
编辑:
现在,我在将其更改为64M以及内存限制后出现此错误
PHP Fatal error: Allowed memory size of 67108864 bytes
exhausted (tried to allocate 20736 bytes) in
/Users/Desktop/localhost/system/libraries/Image_lib.php on line 1155
您的内存限制为32M,并试图分配更多内存,因此脚本失败。可能您必须使用大型图像(image_gd在内存中保留位图,这会占用大量内存)。 你能做的就是
- 使用image_magick而不是gd
- 增加内存限制(即64M或更多)
- 使用image_magick而不是gd
- 增加内存限制(即64M或更多)
此外,您还需要增加。由于文件大小大于32MB(至少为33554432字节),这两个指令都将失败
此外,您还需要增加。image\u magick可能不可能,因为他正在使用一个框架,重写该框架会导致混乱……image\u magick可能不可能,因为他正在使用一个框架,重写该框架会导致混乱……我必须重新启动服务器吗?(我在mamp上,因为当我更改它并重新加载时,日志中仍然显示32mb)现在我得到了这个错误。PHP致命错误:第1155行/Users/Desktop/localhost/system/libraries/Image_lib.PHP中允许的内存大小为67108864字节(尝试分配20736字节),这意味着文件大小对于设置的限制仍然太大。档案有多大?限制必须至少与文件大小一样大。是的,您需要重新启动apache才能使更改生效。我查看了各种来源,它们都在说同样的事情,但这些解决方案都不适合我。还有别的工作吗?上载大文件时遇到此问题。@MattSaunders您是否在日志中看到任何错误?你看到关于内存限制的链接了吗?可能还需要在
php.ini
中检查default\u socket\u timeout
。你也可以试试。我在图书馆方面很成功。使用分块,无需处理服务器/软件配置文件。是否需要重新启动服务器?(我在mamp上,因为当我更改它并重新加载时,日志中仍然显示32mb)现在我得到了这个错误。PHP致命错误:第1155行/Users/Desktop/localhost/system/libraries/Image_lib.PHP中允许的内存大小为67108864字节(尝试分配20736字节),这意味着文件大小对于设置的限制仍然太大。档案有多大?限制必须至少与文件大小一样大。是的,您需要重新启动apache才能使更改生效。我查看了各种来源,它们都在说同样的事情,但这些解决方案都不适合我。还有别的工作吗?上载大文件时遇到此问题。@MattSaunders您是否在日志中看到任何错误?你看到关于内存限制的链接了吗?可能还需要在php.ini
中检查default\u socket\u timeout
。你也可以试试。我在图书馆方面很成功。有了分块,就没有必要弄乱服务器/软件配置文件。
; Maximum allowed size for uploaded files.
upload_max_filesize = 32M
; Must be greater than or equal to
upload_max_filesize post_max_size = 32M