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();
        }
    }
}   
相关推荐
两点王爷4 小时前
springboot项目文件上传到服务器本机,返回访问地址
java·服务器·spring boot·文件上传
nuc-1278 小时前
[ACTF2020 新生赛]BackupFile题解
web·ctf
带刺的坐椅9 小时前
qwen3 惊喜发布,用 ollama + solon ai (java) 尝个鲜
java·spring·solon·solon-ai·qwen3
ZZZKKKRTSAE16 小时前
快速上手Linux的Web服务器的部署及优化
linux·运维·服务器·web
GeekABC1 天前
FastAPI系列06:FastAPI响应(Response)
开发语言·python·fastapi·web
一只程序烽.1 天前
err: Error: Request failed with status code 400
java·axios·web
一只小风华~1 天前
Web前端开发:CSS Float(浮动)与 Positioning(定位)
前端·css·html·html5·web
BXCQ_xuan2 天前
Typecho博客网站头部SEO优化完整指南
运维·服务器·数据库·php·web
pedestrian_h2 天前
gin框架学习笔记
笔记·学习·go·web·gin
朱颜辞镜花辞树‎2 天前
关于GoWeb(1)
go·web