1. 使用环境
使用的是Linux宝塔集成环境。
服务器:linux + php7.3 + nginx
框架:thinkphp6 (HkCms开源内容管理系统后台文件上传)
2. 遇到的问题
在hkcms后台里面进行文件上传,上传视频文件150mb的视频报错,错误信息如下
Allowed memory size of 134217728 bytes exhausted (tried to allocate 31457312 bytes)
错误信息截图
根据错误信息原因是可用的内存已经耗尽
3. 解决方案
方案一:需要去到PHP配置文件调高memory_limit选项值,宝塔可直接在PHP管理界面修改。
memory_limit 如果是128,往高处调即可,注意自己服务器内存大小。
非宝塔去到配置文件修改,找到php.ini,修改memory_limit值
memory_limit = 256M
如果不能修改配置,通过ini_set函数修改配置选项值。thinphp是去到public目录下找到入口文件,如下
// 全局配置memory_limit选项
ini_set('memory_limit', '256M');
方案二:使用系统自带的分片功能上传
hkcms内置分片上传功能,在站点配置里面-》附件配置-》开启分片即可
若要在自己系统实现分片,可参考hkcms使用的是jQuery-File-Upload分片上传插件