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();
        }
    }
}   
相关推荐
曲幽2 天前
FastAPI + SQLite:从基础CRUD到安全并发的实战指南
python·sqlite·fastapi·web·jwt·form·sqlalchemy·oauth2
HarryXYC2 天前
【vb.net】实现简单的内网文件分享网站
.net·web·文件共享·vb.net
曲幽3 天前
FastAPI + TinyDB并发陷阱与实战:告别数据错乱的解决方案
python·json·fastapi·web·并发·queue·lock·文件锁·tinydb
组合缺一4 天前
灵动如画 —— 初识 Solon Graph Fluent API 编排
java·solon·graph·flow·langgraph·liquor
码界奇点4 天前
前端基础知识构建现代Web应用的基石
前端·青少年编程·web
Code Slacker4 天前
第八届传智杯AI WEB网页开发挑战赛练习题库
web·竞赛·传智杯
CC码码4 天前
迈向开源第一步,给fabric.js提PR
前端·javascript·开源·web·fabric
mooyuan天天4 天前
CISP-PTE 文件上传5
文件上传·cisp-pte·文件上传漏洞·黑名单绕过
闲人编程4 天前
FastAPIAdmin后台管理系统
python·接口·web·后台管理·admin·codecapsule·fast api
sg_knight4 天前
如何通过 CSS 实现走马灯效果(纯前端实现)
前端·javascript·css·vue·web·走马灯