Solon Web 文件上传的最佳实践

文件上传是 Web 开发中最常见的一个应用场景。一般在处理数据时,会有两种常见的方案:直接把文件流放在内存里,或者把文件流先缓冲到磁盘。

1、如果是高频且文件极小

使用纯内存模式,默认即可。如果高频小文件,是不适合用"临时文件模式"的,磁盘可能容易刷坏。只能多配些内存!

2、如果是低频或者文件很大

建议使用"临时文件模式"。即上传的数据流,先缓存为临时文件(落盘),再以本地文件流形式提供使用。这个非常省内存。比如,上传 1GB 的文件,服务内存几乎不会上升。

  • 添加配置

使用临时文件需要通过配置开启

yaml 复制代码
server.request.useTempfile: true #默认 false
  • 用后主动删除(建议,不管有没有用"临时文件模式"都主动删除)

使用完后,注意要删掉

java 复制代码
@Controller
public class DemoController{
    @Post
    @Mapping("/upload")
    public void upload(UploadedFile file) { 
        try{
            file.transferTo(new File("/demo/user/logo.jpg")); 
        } finally {
            file.delete();
        }
    }
}   
相关推荐
x-cmd1 天前
[250331] Paozhu 发布 1.9.0:C++ Web 框架,比肩脚本语言 | DeaDBeeF 播放器发布 1.10.0
android·linux·开发语言·c++·web·音乐播放器·脚本语言
sszdlbw2 天前
BUUCTF-web刷题篇(6)
web安全·web·buuctf
DarkBule_3 天前
零基础驯服GitHub Pages
css·学习·html·github·html5·web
2501_906801484 天前
BY组态-低代码web可视化组件
前端·物联网·低代码·数学建模·编辑器·web
Sweet_vinegar5 天前
变量1(WEB)
安全·web·ctf·bugku
豆芽8195 天前
基于Web的交互式智能成绩管理系统设计
前端·python·信息可视化·数据分析·交互·web·数据可视化
Logintern095 天前
分享一个Pyside6实现web数据展示界面的效果图
python·学习·web·数据·pyside6
亿.65 天前
[ 春秋云境 ] Initial 仿真场景
web·内网渗透·春秋云镜
2501_906800767 天前
低代码配置式组态软件-BY组态
前端·后端·物联网·低代码·数学建模·web