Solon Web 文件上传(upload)的最佳实践

文件上传是 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 分钟前
WordPress运维服务中的内容营销策略
java·运维·spring
码农胖虎-java7 分钟前
【java并发编程】从源码角度彻底理解 ForkJoinPool.commonPool
java·开发语言·python
开开心心_Every14 分钟前
重复图片智能清理工具:快速查重批量删除
java·服务器·开发语言·前端·学习·edge·powerpoint
Wpa.wk22 分钟前
性能测试 - JMeter练习-JMeter录制Web端压测脚本操作步骤
java·前端·经验分享·jmeter·自动化
萧曵 丶24 分钟前
Elasticsearch 高频面试题(高级 Java 开发版)
java·elasticsearch
xiaoliuliu1234530 分钟前
apache-tomcat-6.0.10使用步骤详解(附启动与部署教程)
java·tomcat·apache
Re_zero32 分钟前
🍲 图解 JVM 内存模型:别背八股文了,直接进“Re-Zero 火锅店”干饭!
java·jvm
阿蒙Amon32 分钟前
C#每日面试题-简述命名空间和程序集
java·面试·c#
烤麻辣烫34 分钟前
Java开发手册规则精选
java·开发语言·学习
小宇的天下36 分钟前
Virtuoso 中的tech file 详细说明
java·服务器·前端