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();
        }
    }
}   
相关推荐
一心赚狗粮的宇叔8 小时前
mongosDb 安装及Mongosshell常见命令
数据库·mongodb·oracle·nosql·web·全栈
曲幽11 小时前
FastAPI部署中间件实战:从CORS到自定义,让你的API更健壮
python·fastapi·web·cors·starlette·middleware·call_next
韩立学长2 天前
【开题答辩实录分享】以《助农信息发布系统设计与实现》为例进行选题答辩实录分享
python·web
chxii2 天前
IIS 10.0
web
快起来搬砖了3 天前
UniApp 全端兼容 OSS 视频上传实现方案
小程序·uni-app·app·h5·文件上传·oss文件上传
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.4 天前
HAProxy 自定义错误页面配置指南
运维·负载均衡·web
曲幽5 天前
FastAPI日志实战:从踩坑到优雅配置,让你的应用会“说话”
python·logging·fastapi·web·error·log·info
Dawndddddd5 天前
文件上传及比较常见的题目解析
ctf·文件上传
暴富的Tdy5 天前
【前端开发-循序渐进转向全栈开发】
vue2·web·全栈
码界奇点5 天前
基于WebDAV协议的天翼云盘智能分享管理系统设计与实现
毕业设计·web·go语言·源代码管理