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();
        }
    }
}   
相关推荐
SwBack36 分钟前
[qsctf] 雏形系统
php·web·ctf·反序列化·雏形系统·qsctf
带刺的坐椅4 小时前
Solon AI 开发学习7 - chat - 四种消息类型及提示语增强
java·ai·llm·solon
曲幽6 小时前
Flask入门:轻松掌握API路由定义
python·flask·web·route
提笔了无痕19 小时前
go web开发表单知识及表单处理详解
前端·后端·golang·web
牧码岛1 天前
Web前端之canvas实现图片融合与清晰度介绍、合并
前端·javascript·css·html·web·canvas·web前端
牧码岛1 天前
Web前端之Vue+Element打印时输入值没有及时更新dom的问题
前端·javascript·html·web·web前端
带刺的坐椅1 天前
Solon AI 开发学习6 - chat - 两种 http 流式输入输出
java·ai·solon
带刺的坐椅2 天前
Solon AI 开发学习5 - chat - 支持哪些模型?及方言定制
java·ai·openai·solon
组合缺一3 天前
Spring Boot 国产化替代方案。Solon v3.7.2, v3.6.5, v3.5.9 发布(支持 LTS)
java·后端·spring·ai·web·solon·mcp
带刺的坐椅3 天前
Solon 不依赖 Java EE 是其最有价值的设计!
java·spring·web·solon·javaee