欢迎回归我们为XenForo 2.4准备的"你见过...?"系列!随着我们完成计划中的功能,代码审查工作繁多,未来几周将有很多内容展示给大家。
在这个版本和之前版本的开发过程中,我们一直关注社区中令人惊叹的开发者群体,考虑如何与他们合作,将这些功能引入核心功能。
这次,我们将关注由@JulianD开发的"分块上传"插件,自XenForo 2.4开始,它将成为核心功能的一部分。
因此,XenForo 2.4将要求PHP 8.0.2作为最低版本。大约90%运行XF 2.3的客户已经在使用PHP 8.0及更高版本。如果你还在运行XF 2.2,现在就可以升级,因为我们已经支持PHP 8.0多年了!
随着PHP 8.0,除了能使用我们通常缺失的新语法特性,它还让我们能够现代化一些第三方依赖。
"分块上传"是将上传的文件拆分成更小的块,然后在服务器上重新组装的过程。这样做的主要原因是,如果你的主机对文件上传有严格的限制,或者你想上传大型文件,或者你的网站通过像Cloudflare这样的服务进行代理。
例如,Cloudflare无论你的服务器配置如何,都会设置100MB的上传上限。在某些情况下,PHP的默认最大上传大小只有2MB。或者,你的服务器配置可能正常,但偶尔可能需要上传超过允许大小的文件。
在这些情况下,你可以支付Cloudflare费用,调整服务器配置,或者启用"分块上传":

一旦启用分块上传,理论上你可以上传的文件大小将提升至惊人的128GB!我们通过将文件分割成更小的块来实现。"分块大小"选项决定了每个上传块的最大大小。在上述例子中,我的服务器限制最大文件大小为2,048 KB,因此我应设置分块大小在该值以下。我们还可以自定义同时上传的块数,这对于性能可能有帮助,理论上允许更大数量的块以更快的速度上传大文件。
启用后,如你所见,"最大文件大小"选项现在可以设置为之前不允许的更大值:

再次感谢@JulianD,他允许我们不必从头开始,让我们能够利用他的代码开发这个功能。
在下一次的"你见过...?",我们可能会展示另一位知名开发者的作品,或者对现有功能进行一些新的改进。我们将揭晓答案,当你读到这篇HYS时。
在这个版本和之前版本的开发过程中,我们一直关注社区中令人惊叹的开发者群体,考虑如何与他们合作,将这些功能引入核心功能。
这次,我们将关注由@JulianD开发的"分块上传"插件,自XenForo 2.4开始,它将成为核心功能的一部分。
但首先...
我们决定加快步伐,更新XenForo支持的PHP最低版本。原本我们计划将最低要求提升到PHP 7.4,但现在我们认为是时候告别PHP 7.x了。因此,XenForo 2.4将要求PHP 8.0.2作为最低版本。大约90%运行XF 2.3的客户已经在使用PHP 8.0及更高版本。如果你还在运行XF 2.2,现在就可以升级,因为我们已经支持PHP 8.0多年了!
随着PHP 8.0,除了能使用我们通常缺失的新语法特性,它还让我们能够现代化一些第三方依赖。
分块上传
"分块上传"是将上传的文件拆分成更小的块,然后在服务器上重新组装的过程。这样做的主要原因是,如果你的主机对文件上传有严格的限制,或者你想上传大型文件,或者你的网站通过像Cloudflare这样的服务进行代理。
例如,Cloudflare无论你的服务器配置如何,都会设置100MB的上传上限。在某些情况下,PHP的默认最大上传大小只有2MB。或者,你的服务器配置可能正常,但偶尔可能需要上传超过允许大小的文件。
在这些情况下,你可以支付Cloudflare费用,调整服务器配置,或者启用"分块上传":

一旦启用分块上传,理论上你可以上传的文件大小将提升至惊人的128GB!我们通过将文件分割成更小的块来实现。"分块大小"选项决定了每个上传块的最大大小。在上述例子中,我的服务器限制最大文件大小为2,048 KB,因此我应设置分块大小在该值以下。我们还可以自定义同时上传的块数,这对于性能可能有帮助,理论上允许更大数量的块以更快的速度上传大文件。
启用后,如你所见,"最大文件大小"选项现在可以设置为之前不允许的更大值:

再次感谢@JulianD,他允许我们不必从头开始,让我们能够利用他的代码开发这个功能。
在下一次的"你见过...?",我们可能会展示另一位知名开发者的作品,或者对现有功能进行一些新的改进。我们将揭晓答案,当你读到这篇HYS时。
