在使用fastadmin框架给客户开发系统的时候,遇到一个下载不能正常运行的问题,要么弹窗“未知的数据格式”,要么报错500,在审查里面看到提示“Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)” 经过一系列研究折腾搜索,记录下这个问题的解决办法。
1.首先要注意的是,fastadmin框架在底部有个列表页显示数据按钮,其中有一个选项是显示全部数据,通常情况下这个配置是没有问题的,但当客户数据量很大的时候(超过2000对于fastadmin就是比较多了),这个配置需要修改下:在对应的js文件使用 pageList: [10, 50, 100, 200, 500,1000], 进行重置。这样的话每个页面请求的数据就不会很多了,可以有效避免500错误,以及由此导致的加载报错或者下载报错。
2.fastadmin框架下载功能有个细节需要注意,就是点击下载按钮时候,如果没有选择任何的数据,那么默认导出的会是全部的数据,所以,在下载文件的时候,会遇到报错“未知的数据格式”或者“Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)” 需要在对饮的js文件中添加限制 exportDataType:’basic’, 添加上这个之后,下载功能就会变为默认下载当前页,就解决了下载报错的问题啦。
当然,在网上还有其他解决办法,比如使用PhpSpreadsheet 自己重新写下载功能逻辑,等等。如果开发能力很强的可以去尝试。简单记载一下。以后好方便查资料