2026-06-10 附件上传改为文件流并默认支持 2G
本次将发帖附件上传从 base64 POST 改为 FormData 文件流上传,降低大文件上传时的浏览器内存占用和请求体膨胀问题,并将程序默认附件上限调整为 2G。
主要改动:
- 前端上传方式改造
- 文件:view/js/xiuno.js
- 普通附件和编辑器图片上传改为
FormData + upfile 文件流提交。
- 保留带图片压缩参数的上传兼容逻辑,后台二维码等场景仍可按原方式压缩后上传。
- 上传进度继续通过
xhr.upload.progress 回调更新。
- 服务端附件接收改造
- 文件:route/attach.php
- 附件创建接口优先接收
$_FILES['upfile'],并使用 move_uploaded_file() 保存到 upload/tmp/。
- 保留旧版 base64
data 上传兼容。
- 文件类型、扩展名、MIME、安全后缀拦截等原有校验继续保留。
- 程序默认单附件限制从
100M 调整为 2G。
- 后台二维码上传兼容
- 文件:admin/route/setting.php
- 快捷按钮微信二维码上传兼容新的
$_FILES['upfile'] 文件流请求。
- 原 base64 上传方式继续兼容。
配置影响:
- 程序默认上限已调整为 2G,但线上仍需要同步调整 PHP 和 Web 服务器限制。
- PHP 建议配置:
upload_max_filesize = 2048M
post_max_size = 2200M
memory_limit = 512M
max_execution_time = 0
max_input_time = 0
client_max_body_size 2200m;
- 大文件上传还需要确保 PHP 临时目录、
upload/tmp/ 和 upload/attach/ 所在磁盘空间充足。